Excel e gli applicativi Microsoft Office Disabilitare e successivamente abilitare pulsante su foglio con messaggio

LoginRegistrati
Stai vedendo 25 articoli - dal 1 a 25 (di 25 totali)
  • Autore
    Articoli
  • #18049 Risposta
    Gret
    Gret
    Partecipante

      Ciao a tutti,

      chiedo un vostro gentile aiuto riguardo a un problema. In un foglio è presente un CommandButton1 che, se cliccato, mi apre una userform tipo menù e cliccando su un button in questa userform mi apre a sua volta un'altra userform per l'inserimento dei dati.

      Nelle textbox (93:102) escono i valori contenuti nelle celle (del medesimo foglio dove è presente il commandbutton) W1:W10. Questi sono sempre valori che modificherò io manualmente (quindi rimarranno sempre nel foglio, non li cancello).

      Il mio intento sarebbe questo: siccome i dati della colonna W li modificherò sempre (prima dell'apertura dell'userform), sarebbe possibile all'apertura della cartella, disabilitare il commandbutton1, se ci clicco uscirà un messaggio che dice "Hai modificato la colonna?" se sì abilita bottone, se no rimane disabilitato?

      Grazie mille per il vostro tempo e buon weekend 🙂

       

      #18050 Risposta

      vecchio frac
      Senior Moderator
      • Sfida #1
        171 pts

        Gret ha scritto:

        disabilitare il commandbutton1, se ci clicco uscirà un messaggio

        Se disabiliti un pulsante non puoi cliccarci sopra per eseguirne il codice.

        Il tuo scopo è fare in modo che Excel si accorga se hai modificato l'intervallo di colonna W prima di aprire il form giusto? cioè la sequenza è: apro Excel - modifico l'intervallo di dati - premo il commandbutton che apre il form menu.

        Come può Excel sapere se hai modificato un intervallo di un foglio di lavoro? Con l'evento WorkSheetChange... quando avvii il file disabiliti il command button, quando parte la modifica del foglio puoi riabilitarlo.

         

        #18054 Risposta
        Gret
        Gret
        Partecipante

          Ciao vecchio frac,

          si la sequenza delle azioni sarebbe: apro excel--> se clicco sul button senza modificare la colonna W esce un messaggio che dice "hai modificato la colonna interessata?"----> se clicco su sì si abilita il form, se clicco su no il form non viene mostrato ----> modifico la colonna---> clicco sul commandbutton esce nuovamente il messaggio e clicco su si..

           

          #18055 Risposta

          vecchio frac
          Senior Moderator
          • Sfida #1
            171 pts

            Allora prova a fare quello che ti ho suggerito, se disabiliti il command button all'apertura del file, non hai nemmeno la necessità di mostrare un alert aggiuntivo. Semplicemente non puoi fare niente finchè la colonna W non viene modificata. Potresti anche affinare il discorso e verificare che la modifica sia sostanziale e non formale (andare su una cella in colonna W e riscriverci lo stesso contenuto identico, è una modifica o no?)

            #18057 Risposta
            Gret
            Gret
            Partecipante

              Si certo, ma in alcuni casi può succedere che una o più celle della colonna W sia uguale mentre le altre cambiano. Comunque, come sarebbe la modifica sostanziale e non formale? In senso di codice dico..

              Ti prego di perdonarmi ma il discorso non cambia se è un Button e non un CommandButton vero? Spero di no..

              Grazie mille per l'intervento 🙂

              #18058 Risposta
              Gret
              Gret
              Partecipante

                Allora, ho scritto questa riga ma non fa niente. Cioè lo lascia abilitato

                Button1.Enabled = False

                l'ho inserito nell'evento WorkSheet_Change di Sheet2.. lo salvo e quando lo riapro è come se non avessi scritto niente

                 

                #18059 Risposta
                albatros54
                albatros54
                Moderatore
                • Sfida #2
                  42 pts

                  SE ho capito.Il pulsante lo hai inserito nel foglio"sheet2", il pulsante è un controllo Activex? prova con le righe che ti posto

                  OLEObjects("commandbutton1").enabled=false

                   

                  Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                  Sempre il mare, uomo libero, amerai!
                  ( Charles Baudelaire )
                  #18061 Risposta
                  Gret
                  Gret
                  Partecipante

                    Ciao albatros54, il pulsante non è ActiveX.. spero che questo non sia un problema...  

                    #18062 Risposta
                    albatros54
                    albatros54
                    Moderatore
                    • Sfida #2
                      42 pts

                      Gret ha scritto:

                      il pulsante non è ActiveX..

                      credo che dovrebbe funziona lo stesso

                       

                      Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                      Sempre il mare, uomo libero, amerai!
                      ( Charles Baudelaire )
                      #18065 Risposta
                      Gret
                      Gret
                      Partecipante

                        Purtroppo non funziona, non esce nessun messaggio neanche a correggere..  

                        Allego file così potete vedere..

                        Grazie tantissimo per la pazienza!

                        Allegati:
                        You must be logged in to view attached files.
                        #18067 Risposta

                        vecchio frac
                        Senior Moderator
                        • Sfida #1
                          171 pts

                          C'è bisogno di un trucco in più 🙂

                          Allego file di prova. Certo più semplice con un Activex button.

                          Allegati:
                          You must be logged in to view attached files.
                          #18069 Risposta

                          vecchio frac
                          Senior Moderator
                          • Sfida #1
                            171 pts

                            A far bene si dovrebbe anche colorare il testo del pulsante di grigio quando deve essere disabilitato (non lo è mai, in effetti, solo che gli imposto una routine fittizia quando non deve fare niente)

                            #18070 Risposta

                            vecchio frac
                            Senior Moderator
                            • Sfida #1
                              171 pts

                              Gret ha scritto:

                              Allego file così potete vedere..

                              Gret, avevo preparato un file di prova senza accorgermi del tuo file. Pazienza, credo che capirai ugualmente cosa fare 🙂

                              #18071 Risposta
                              Gret
                              Gret
                              Partecipante

                                Ok, ci credi che non funziona?

                                Ho aperto il file ed esce un messaggio che dice "l'oggetto non supporta questa proprietà o metodo", faccio su debug e mi evidenzia questa riga:

                                .Font.Color = 0

                                poi chiudo e il tasto è disabilitato (commandbutton1). Scrivo nella colonna e si abilita.. però il button rimane abilitato..  

                                 

                                #18073 Risposta

                                vecchio frac
                                Senior Moderator
                                • Sfida #1
                                  171 pts

                                  No infatti quella parte non va, ho dimenticato di toglierla dall'evento Open, riprova cancellando le istruzioni che manipolano il font color e vedrai che stavolta funziona.

                                  #18075 Risposta
                                  Gret
                                  Gret
                                  Partecipante

                                    Va una meraviglia adesso....ma per il button come dovrei fare?

                                    Il pulsante che sta nel mio foglio non fa parte del controllo activex  

                                    #18076 Risposta

                                    vecchio frac
                                    Senior Moderator
                                    • Sfida #1
                                      171 pts

                                      Ok, ho capito come cambiare il colore del testo del pulsante, riallego tutto 🙂

                                      Gret
                                      Allegati:
                                      You must be logged in to view attached files.
                                      #18078 Risposta

                                      vecchio frac
                                      Senior Moderator
                                      • Sfida #1
                                        171 pts

                                        Gret ha scritto:

                                        ma per il button come dovrei fare?

                                        Nel mio esempio (il primo ma soprattutto il secondo, che funziona meglio) il command button è ActiveX, ma il secondo pulsante è un controllo modulo, che è come il tuo. Riporta le modifiche al tuo file e vedrai che gira.

                                        #18079 Risposta
                                        Gret
                                        Gret
                                        Partecipante

                                          Mi sto perdendo, facciamo il punto della situazione:

                                          Worksheets("foglio1").OLEObjects(1).Enabled = Not (Intersect(Target, Range("A2:A10")) Is Nothing)

                                          questa riga si riferisce al commandbutton (ActiveX), giusto? Mentre questa parte:

                                          With Worksheets("foglio1").Shapes("pulsante 1")
                                                  If Not (Intersect(Target, Range("A2:A10")) Is Nothing) Then
                                                      .OnAction = "Pulsante1_Click"
                                                      .ControlFormat.Enabled = True
                                                      .TextFrame.Characters.Font.Color = 0 'black
                                                  Else
                                                      .OnAction = "dummy"
                                                      .TextFrame.Characters.Font.Color = 8421504  'gray
                                                  End If
                                              End With

                                          si riferisce al pulsante (Form, uguale al pulsante che ho sul mio foglio) giusto? E l'istruzione sta a dire questo: apro il file ed entrambi i pulsanti (activex e form) sono disabilitati e si abilitano nel momento in cui cambio dei valori nel range A1:A10, e se clicco su uno dei due pulsanti (ho notato che hai richiamato la macro del pulsante activex) esce il messaggio giusto vero?

                                          Quindi se io avessi bisogno solo di un pulsante, non ActiveX, devo cancellare la prima istruzione...sto andando bene?

                                          Grazie mille della pazienza  

                                          #18080 Risposta

                                          vecchio frac
                                          Senior Moderator
                                          • Sfida #1
                                            171 pts

                                            Esatto! L'esempio coi due pulsanti era per completezza 🙂

                                            #18081 Risposta
                                            Gret
                                            Gret
                                            Partecipante

                                              WOW il caldo non ha preso il sopravvento su di me come credevo ..

                                              Non posso che dirti se non un grazie 1.000.000.000.000....

                                              Buona continuazione e buon San Lorenzo  

                                              #18082 Risposta
                                              Gret
                                              Gret
                                              Partecipante

                                                Come non detto...

                                                vecchio frac scusa, ti chiederei gentilmente di dare un'occhiata al file che allego perchè non so per quale motivo appena riapro il file il pulsante è ancora abilitato..

                                                Grazie mille e scusami

                                                Allegati:
                                                You must be logged in to view attached files.
                                                #18084 Risposta
                                                Gret
                                                Gret
                                                Partecipante

                                                  Ho capito l'errore!

                                                  Ho cancellato "dummy"..  

                                                  Scusami tanto e buon weekend  

                                                  #18090 Risposta

                                                  vecchio frac
                                                  Senior Moderator
                                                  • Sfida #1
                                                    171 pts

                                                    No, direi che non va bene 🙂 Cancellando la routine vuota "dummy" hai lasciato sempre abilitato il pulsante... ti riallego il tuo file corretto.

                                                    Ho aggiunto anche il messaggio di attebnzione che volevi implementare all'inizio (la routine dummy serve a questo).

                                                    Inoltre ti raccomando di inserire sempre in testa ai tuoi moduli la direttiva Option Explicit.

                                                    Allegati:
                                                    You must be logged in to view attached files.
                                                    #18140 Risposta
                                                    Gret
                                                    Gret
                                                    Partecipante

                                                      Ciao Vecchio Frac,

                                                      grazie mille  

                                                    LoginRegistrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 25 totali)
                                                    Rispondi a: Disabilitare e successivamente abilitare pulsante su foglio con messaggio
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni:



                                                    vecchio frac - 2744 risposte

                                                    albatros54
                                                    albatros54 - 716 risposte

                                                    patel
                                                    patel - 627 risposte

                                                    Marius44
                                                    Marius44 - 544 risposte

                                                    Luca73
                                                    Luca73 - 514 risposte