Risultati da 1 a 17 di 17

Discussione: Esecuzione macro con casella di controllo flaggata



  1. #1
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Esecuzione macro con casella di controllo flaggata

    Ciao a tutti,
    Grazie a Ges e Gianfranco ([RISOLTO]Calcolare data in presenza di diverse condizioni) sono quasi alla fine del progetto ora tocca alle macro.

    https://www.dropbox.com/s/e54g9ivv7l...eV1a.xlsm?dl=0

    Ho creato quella che prende esclusivamente il valore di una cella con formula e la copia in altra cella.
    Codice: 
    Sub copia_incolla_speciale()
        Range("I4").Select
        Selection.Copy
        Range("G4").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False '<-valori
        Application.CutCopyMode = False '<- toglie il tratteggio alle celle copiate
    End Sub
    Ora viene, per me!!, il difficile ossia:
    1) quando viene flaggata la casella di controllo "Rinnovato" parte la macro di cui sopra.
    2) Dopo averla eseguita viene poi tolto il flag a "Rinnovato".

    Come faccio??

    Grazie
    Gene

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977

    Re: Esecuzione macro con casella di controllo flaggata

    Che senso ha fleggare una casella che esegue una routine che toglie il flag? Se non ho capito male, basta un tasto che esegue la macro.
    A proposito, la macro si può ridurre a:
    Codice: 
     
    Range(g4)=range(i4).Value
    EDIT: avevo sbagliato la macro
    Inviato dal mio GT-I9301I utilizzando Tapatalk

  3. #3
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Rubik,
    mi spiego meglio:
    1) non volevo "sporcare" graficamente il lavoro inserendo un tasto
    2) quando apro il file vedo che alcuni colleghi hanno la patente in scadenza e dopo aver verificato l'avvenuto rinnovo flaggo la casella e questa fà partire la macro che aggiornando la scadenza, riportando il tutto nella condizione iniziale.
    3) volevo imparare un pezzetto di VBa in più.

    Gene

    PS Comunque tu sei "Bastard inside"--> per creare la terza macro della mia storia ho impiegato circa 40 minuti di lavoro :237:e tu infierisci sulla carne nuda!!

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Esecuzione macro con casella di controllo flaggata

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    ..

    Ho creato quella che prende esclusivamente il valore di una cella con formula e la copia in altra cella.
    ...

    Ora viene, per me!!, il difficile ossia:
    1) quando viene flaggata la casella di controllo "Rinnovato" parte la macro di cui sopra.
    2) Dopo averla eseguita viene poi tolto il flag a "Rinnovato".

    Come faccio??

    Grazie
    Gene
    Ciao Gene,
    mi fa piacere che vuoi imparare il vba, vedrai come alla fine non è poi così difficile.

    Allora, cerco intanto di trasmetterti qualche conoscenza di quelle poche che ho partendo dal tuo codice.

    Regola importante (da non dimenticare): Scrivendo il codice NON BISOGNA SELEZIONARE NULLA.

    Le parti in rosso sono ridondanze del registratore di macro che non servono.

    Altra cosa: inserire dei passaggi che poi vengono dichiarati "False" ALCUNE VOLTE sono inutili.

    I sostanza il tuo codice si potrebbe abbreviare da così:
    Codice: 
    Sub copia_incolla_speciale()
        Range("I4").Select
        Selection.Copy
        Range("G4").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False '<-valori
        Application.CutCopyMode = False '<- toglie il tratteggio alle celle copiate
    End Sub
    A così:

    Codice: 
    Sub copia_incolla_speciale()
        Range("I4").Copy
        Range("G4").PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = False 
    End Sub
    Restando nel tuo codice, ti vuoi copiare SOLO il contenuto di I4? Credo di no.
    Vorrai copiare il contenuto delle celle da I4 a I16 quando spunti la checbox .... allora hai bisogno di un ciclo che scelga quella giusta.

    Il più semplice potrebbe essere questo:
    Codice: 
    For y = 4 To 16
    If Range("H" & y) = True Then
    Range("I" & y).Copy
    Range("G" & y + 1).PasteSpecial Paste:=xlValue
    Poi vuoi che il ciclo si attivi quando viene flaggata la casella di controllo "Rinnovato" e dopo venga tolto il flag a "Rinnovato".

    Se non vuoi mettere un pulsante associato ad una macro allora hai bisogno di un "evento" che scateni la macro, quindi la macro deve stare non in un modulo standard ma in un modulo di classe.... doppioclick su "Foglio1" del vbe clicca poi sul menu a tendina dove c'è scrotto "generale" e scegli "worksheet" nel menu di destra trovi gli "eventi" utili per scatenare la macro.

    Potresti provare inizialmente con "SelectionChange" o "BeforeDoubleClick" ... ti serviranno per fare delle prove poi ne utilizzeremo uno più raffinato per quello che cerchi.

    Bene, mi fermo qui ... adesso prova .. prova .. prova e ... prova... poi ci risentiamo. :43:
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. I seguenti utenti hanno dato un "Like"


  6. #5
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Ges,
    grazie per l'incoraggiamento.
    Ma è ancora più frustante non riuscire ad ottenere nulla seguendo delle spiegazioni cosi chiare :235:.
    Ho fatto e rifatto tutto, provato e riprovato ma flaggando su Rinnovato non ottengo nulla. Sono arrivato a provare fino a Change!!

    https://www.dropbox.com/s/u3zmh41eqj...BGes.xlsm?dl=0

    Gene

  7. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977

    Re: Esecuzione macro con casella di controllo flaggata

    Ho visto il file e secondo me vanno fatte alcune modifiche:
    1) Le caselle di controllo devono essere collegate ognuna ad una cella differente (h4, h5, h6 ecc);
    2) A tutte le caselle di controllo va assegnata la macro che è questa:
    Codice: 
    Sub riCopia()
    Dim y As Integer
    
    
    For y = 4 To 16
        If Range("H" & y) Then
            Range("G" & y + 1) = Range("I" & y)
        End If
    Next
    End Sub
    senza entrare nel merito della formula nella colonna "I", la macro ricopia la data della scadenza successiva nella colonna "G".

    P.S. C'erano due errori di sintassi nella macro. Il ciclo For...Next, inizia con For e va obbligatoriamente chiuso con NEXT (che mancava), come If...End If va obbligatoriamente chiuso con End If altrimenti il Debugger si "arrabbia".

  8. #7

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Rubik,
    grazie per la precisazione, nel codice sopra mi era sfuggito il Next e End If. :286:
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  9. #8
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao a tutti.
    Continuando la mia formazione VBA.
    1) Verificato che le caselle di controllo fossero collegate a celle differenti (OK lo sono)
    2) Agganciate, per provare, solamente le caselle di controllo H4 e H5 alla macro di cui al punto successivo.
    3) Ho creato un modulo standard ed inserito il codice modifica "Rubik"

    Risultato: Non riesco a farla funzionare.

    https://www.dropbox.com/s/lndr4wfvt2...teV2.xlsm?dl=0

    Gene

  10. #9

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Gene,
    seguendo la strada di Rubik, che saluto, vedi così:
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  11. #10
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Ges,
    flaggando "Rinnovato" la data aggiornata veniva scritta nella cella sottostante ma togliendo +1 sono riuscito a farla lavorare correttamente
    Codice: 
    Sub riCopia()
    Dim y As Integer
    
    
    For y = 4 To 16
        If Range("H" & y) Then
            Range("G" & y) = Range("I" & y)
        End If
    Next
    End Sub
    Ma dopo che ha aggiornato la data della "scadenza attuale" dobbiamo "dirgli" che:
    1) il flag và tolto perchè ha fatto l'operazione di copia/incolla
    2) di non formattare la casella in rosso perchè la data non è scaduta.

    Gene
    PS in realtà ho eliminato il +1 anche dal modulo di classe perchè, francamente, non mi è ancora chiaro quale dei due lavora. Continuo con le prove ed approfondimenti.

  12. #11

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7108
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2059
    Likes dati
    1296

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao,
    proseguiamo con lavoro proposto...

    Ho aggiunto un passo che toglie il flag dopo aver fatto l'operazione
    Codice: 
    Sub pulsanti()
    Dim y As Integer
        With Sheets(1)
            Range("C4:I16").Interior.ColorIndex = 40
                For y = 4 To 16
                    If Range("H" & y) = True Then
                        Range("G" & y + 1) = Range("I" & y)
                    End If
                Range("H" & y) = False
                Range("H" & y).Interior.ColorIndex = 40
                Next
        End With
    End Sub
    Ho tolto anche la formattazione condizionale, perchè a questo punto la mettiamo con la macro (non ricordo più in quali condizioni va messa)
    Attendo altre istruzioni

    P.S. - Per le checkbox ho preferito usare singoli codici giusto per rendere più semplice la cosa (almeno spero)
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  13. #12

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977

    Re: Esecuzione macro con casella di controllo flaggata

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    Ma dopo che ha aggiornato la data della "scadenza attuale" dobbiamo "dirgli" che:
    1) il flag và tolto perchè ha fatto l'operazione di copia/incolla
    aggiungi:
    Codice: 
    For y = 1 To 13
        Foglio1.Shapes("Check Box " & y).ControlFormat.Value = xlOff
    Next

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    2) di non formattare la casella in rosso perchè la data non è scaduta.
    usa la formattazione condizionale facendo riferimento alle celle H4:H16

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    PS in realtà ho eliminato il +1 anche dal modulo di classe perchè, francamente, non mi è ancora chiaro quale dei due lavora. Continuo con le prove ed approfondimenti.
    Tasto dx sul controllo / Assegna macro / Modifica

    P.S. Attenzione ai controlli, eseguendo un ciclo For Each ho visto che esistono 48 controlli moli dei quali sovrapposti (a te ne servono 13)
    Codice: 
    Sub Test()
    Dim sh As Shape
    
    
    For Each sh In ActiveSheet.Shapes
        sh.Select
        MsgBox "Questo è " & sh.Name
    Next
    
    
    End Sub

  14. #13
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Ges & Rubik,
    scusate l'assenza ma come già anticipato all'amico Marius questa è stata una settimana di "deliri produttivi-commerciali".

    Riassumendo: ho studiato la macro di Ges e corretto gli errori segnalati da Rubik e sono pronto a mettere risolto.

    Resta un solo particolare "grafico" da sistemare: la scritta in bianco FALSO che fà capolino sotto il testo "Rinnovato" nella colonna I.

    https://www.dropbox.com/s/qnjwhxck5o...s_v2.xlsm?dl=0

    @Ges
    La formattazione evidenzia la scadenza del documento rispetto alla data oggi

    @Rubik
    non ho integrato la macro Test ():
    - perchè non ho capito se dovevo inserirla in coda alla macro Pulsante o in un modulo diverso
    - quale fosse la sua funzione (i miei limiti VBA sono noti:235:)

    Grazie a tutti voi.

    Gene

  15. #14

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977

    Re: Esecuzione macro con casella di controllo flaggata

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    [...]
    Resta un solo particolare "grafico" da sistemare: la scritta in bianco FALSO che fà capolino sotto il testo "Rinnovato" nella colonna I.
    [...]
    Basta usare uno sfondo non trasparente (bianco per esempio) nella checkbox

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    [...]
    @Rubik
    non ho integrato la macro Test ():
    - perchè non ho capito se dovevo inserirla in coda alla macro Pulsante o in un modulo diverso
    - quale fosse la sua funzione (i miei limiti VBA sono noti:235:)
    [...]
    La macro va eseguita a parte e serve per scovare tutte le forme (shapes) inutili.

  16. #15
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Esecuzione macro con casella di controllo flaggata

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Basta usare uno sfondo non trasparente (bianco per esempio) nella checkbox
    Ma quando cambia colore in rosso ( x scaduto) ri-salterebbe di nuovo fuori!

    Gene

  17. #16
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3202
    Versione Office
    Excel2010
    Likes ricevuti
    624
    Likes dati
    154

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Gene
    come ha detto Rubik (ciao) se il fondo NON E' TRASPARENTE il colore non ha importanza.

    Ciao,
    Mario

  18. #17
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: Esecuzione macro con casella di controllo flaggata

    Ciao Mario & Rubik,
    quasi un'ora dopo ma ci sono arrivato :48:.

    Gene

Discussioni Simili

  1. reset casella di controllo
    Di Mammut65 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 30/11/16, 17:35
  2. Creare macro associata a casella di controllo
    Di pamelapa nel forum Domande su Excel VBA e MACRO
    Risposte: 44
    Ultimo Messaggio: 21/07/16, 20:49
  3. casella di controllo
    Di CRISTIAN nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 05/05/16, 18:29
  4. Controllo moduli - casella di controllo
    Di CRISTIAN nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 03/05/16, 22:55
  5. Casella di controllo
    Di michele.ta nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 29/03/16, 16:32

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •