You are here:--Programmazione del Nonno #9a SelectionChange(2)

Programmazione del Nonno #9a SelectionChange(2)

Il prossimo passo è creare il “Range” sensibile al nostro spostamento, già abbiamo detto che vogliamo inserire massimo 200 Macro, quindi il nostro Range sensibile sarà “AA2:AA201” dove si trova il nostro Archivio Macro, come facciamo?

Come abbiamo fatto per “Change” usiamo “Intersect”, teniamo conto di una cosa, quando lavoriamo con più fogli dobbiamo avere sempre presente la nostra POSIZIONE, attualmente con “Sh1.Activate” ci troviamo sul foglio “Archivio” quindi il Range da indicare sarà quello del foglio Archivio.

Usiamo il solito codice
If Not Intersect(Target, Sh1.Range(“AA2:AA201”)) Is Nothing Then
però notate due cose prima di Range ho inserito “Sh1.Range” proprio per far capire ad Excel che si tratta del Range del Foglio “Archivio”.
Con l’andare avanti vi accorgerete che le parole chiavi a volte il codice si ripete, quindi potete anche fare Copia/Incolla facendo le variazioni del Range o altre piccolezze.

Sotto valorizziamo la Variabile “Trg” e scriviamo
Trg = Target.Value
adesso la variabile “Trg” conterrà il valore di “Target”, cioè se noi abbiamo selezionato la cella “AA4” che contiene “3” Target sarà uguale a 3 quindi adesso anche Trg è uguale a 3.

Ma attenzione, abbiamo anche detto che possiamo inserire fino a 200 macro, ammettendo che io selezioni la cella “AA20” che è vuota, quindi “Target” sarà vuoto, che succede? logicamente Excel andrà a controllare, visto che la cella corrisponde ad una cella del nostro Range vorrà eseguire la macro, noi dobbiamo prevedere queste cose, cioè non far eseguire una Macro che non porta nessun risultato.
Quindi dobbiamo bloccare l’esecuzione della macro, come lo facciamo con “Exit Sub”(Esci dalla macro), ma dobbiamo anche dirgli di confrontare che “Target” sia vuoto, e qui usiamo il Codice “If…End If”, visto che abbiamo passato il valore di Target in “Trg” controlliamo se “Trg” contiene un valore

If Trg = “”(vuoto) then
Exit sub
End If

Ma possiamo anche scrivere tutto su una sola riga molto più leggibile e facile da scrivere

If Tgr = “” Then Exit Sub

In questo caso non abbiamo bisogno di “End If ” Finale

Adesso che dobbiamo fare? dobbiamo andare sul Foglio “Macro” e cercare la macro n° 3.
Facile a dirsi ma come lo facciamo?
Dobbiamo prima di tutto vedere quante macro sono scritte, e poi fare un “Ciclo di Ricerca” trovare la nostra macro e posizionarci sulla cella che la contiene.

Per determinare quante macro sono scritte, dobbiamo contare le righe che sono occupate, ma in questo caso non è facile, in quanto il numero della macro è nella colonna “A” però non sono consecutive cioè sono “Spaziate” dal numero che compone le righe della macro nella colonna “B”, e sono Variabili, ci possono essere anche macro di 200 righe ed oltre.

Allora andiamo a valorizzare la Variabile “uRiga” con

uRiga = Sh2.cells(Rows.Count, 1).end(xlup).Row

che in parole povere dice: Vai al Foglio Macro(Sh2) Trova la prima cella PIENA contando tutte le celle(Rows.Count) della colonna 1=A dalla Fine(End) a salire sopra(Xlup) per le Righe.

Visto che le celle del foglio sono oltre 1 milione “1.048.576” per l’esattezza, parte da quella a salire sopra e quando trova la cella occupata che al momento per la terza macro è 16, in “uRiga” depositerà tale valore.

Direte perche allora non comincia dall’Alto verso il Basso che la via è più breve?, perche Excel si fermerebbe alla macro numero 1, dopo l’1 troverebbe celle vuote, e come sapete, o almeno spero che lo sappiate, in un elenco se premete “Control+FrecciaGiù”, o si ferma alla prima cella piena o se parte da una cella piena si ferma alla prima cella vuota.

Questa dovrebbe essere la nostra situazione attuale

Situazione attuale

Avendo trovata l’ultima cella occupata adesso vediamo come impostare il “Ciclo di Ricerca.



By | 2019-03-30T06:38:08+02:00 Marzo 30th, 2019|Categories: Programmazione del Nonno|Commenti disabilitati su Programmazione del Nonno #9a SelectionChange(2)

About the Author:

BySalv
Excel si può amare od odiare, l'importante che sai usarlo

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi