You are here:--Programmazione del Nonno #4 For…Next

Programmazione del Nonno #4 For…Next

Eccoci di nuovo con la nostra avventura, abbiamo creato lo spazio per la nostra prima Macro.

Ma cosa significa nel titolo “For…Next”, sono 2 parole chiavi che ci aiuteranno a scrivere il nostro codice.

Quando scriviamo in “A1” = 1 poi passiamo scrivendo in “A2” = 2, materialmente cosa facciamo una ripetizione sia dei movimenti che nella scrittura soltanto che incrementiamo il numero ogni volta.

“For…Next” è un ciclo che ripete ogni volta la stessa cosa, Excel ne ha diversi, strutturati diversamente ma in definitiva ripetono i comandi diverse volte.

Quindi se noi diciamo a questo ciclo passa tutte le celle della colonna “A” da 1 a 100 ed inserisci un numero progressivo, abbiamo risolto il nostro problema.

Ma come lo facciamo? cosa dobbiamo dire ad Excel per farci capire, qui le cose incominciano un poco a complicarsi, ma non tanto da non poterle comprendere.

La prima cosa dobbiamo dargli una “Variabile” come contatore, ma che cos’è una Variabile, ce ne sono una miriade di Tipi di variabili, ma definiamo prima cosa è una Variabile.

Immaginiamola come un cassetto in cui ci mettiamo qualcosa, immaginandola come un cassetto possiamo anche immaginarlo più piccolo, più grande, col fondo bucato, con le pareti trasparenti, oppure opache, con all’interno altri cassetti, insomma non sono tutte uguali.

impareremo col tempo ad usare quella giusta, perche ci sono tanti tipi di Variabili, i motivi principali sono due economia di memoria del PC e velocità di esecuzione.

Noi useremo una variabile generica, se non dichiariamo il tipo di Variabile Excel la considera “Generica” cioè che può contenere qualsiasi cosa.

allora nel nostro codice aggiungeremo “Dim” altra parola chiave che serve a dichiarare le variabili, le variabili si possono dichiarare in ogni parte del Codice, ma buona norma dichiararle tutte all’inizio della macro appena sotto il nome della stessa.

Public Sub Conta()
Dim Contatore

End Sub

Io l’ho chiamata “Contatore” giusto perche deve fare da Contatore, ma possiamo dargli qualsiasi nome uno voglia, ogni programmatore ha un suo metodo “Mnemonico” per dichiararle, in modo che leggendo la variabile si ricorda a cosa può riferirsi.

Ma dico altro ogni programmatore ha il suo modo personale di programmare, diciamo che sarebbe un suo STILE, perche per raggiungere lo scopo si possono percorrere vie diverse.

Alcune variabili Excel non le fa inserire in quanto sono “Variabili di Sistema” cioè ad uso interno di Excel, ma non ne ho trovate molte.

Ricordarsi anche una cosa che le Variabili sono “Case sensitive” cioè riconoscono il maiuscolo e minuscolo, “Contatore” non è lo stesso di “contatore” la “C” in minuscolo la considera un altra variabile.

Ecco una semplice spiegazione del Ciclo For…Next, con Codice “Parlante” cioè 

For Contatore = INIZIO to FINE
Quello che deve fare…… scrivi Contatore nella cella “A1″=1(al momento)
Next Contatore

INIZIO = 1, FINE = 100

Che cosa succede quando incontra la prima riga di codice Contatore prende il valore di 1, quindi nel cassetto avremmo messo 1, poi passa alla riga successiva, e trova quello che vogliamo fare scrivere 1 nella cella “A1”.

Qui ci sono molte linee di pensiero su come indicare la cella del foglio di lavoro, sia con “Range” che con “Cells”, io preferisco il secondo metodo molto più facile da capire e gestire.

Torniamo al Principio

Range(“A1”) — Range(“Colonna-Riga”)
Cells(1 ,1) — Cells(Riga-Colonna)

I due elementi indicano la stessa cella, solo che con Cells oltre l’inversione, la colonna può essere indicata numericamente, A=1, B=2, C=3, etc.…

Questo ci verrà comodo quando dovremo fare operazioni che comportano colonne diverse.

A questo punto scrivo:

For Contatore = 1 to 100
    Cells(Contatore, 1) = Contatore
Next Contatore

Ora non incomincio a capire più niente, che significa “Contatore” scritto 2 volte? abbiamo detto prima che Contatore ha il valore 1 nel cassetto, quindi è come avessimo scritto

Cells(1, 1) = 1

Dove il secondo 1 tra parentesi sarebbe la colonna “A”, a questo punto nella cella del foglio compare il Numero 1, a questo punto il cursore passa alla riga successiva e trova

Next Contatore

Trovando “Next” il cursore ritorna di nuovo a Cells(Contatore, 1), però nel frattempo passando per Next contatore si incrementa di 1, un poco come il “Monopoli” quando passi dal “Via” la banca Paga.

A questo punto Contatore cambiando in 2, nel cassetto avremo 2 e quindi

Cells(Contatore, 1) = Contatore

Dobbiamo vederlo come

Cells(2, 1) = 2

Nella cella “A2” verrà scritto 2, ed il ciclo si ripete,  incrementando di 1 ad ogni passaggio, quindi scriverà un numero successivo ad ogni cella successiva della colonna “A”.

Però visto che ce un INIZIO ed una FINE , nello stesso momento che passa per “Next” controlla che “Contatore” non superi la FINE cioè 100, sel la supera non torna più a Cells ma finisce la macro passando ad “End Sub”, finendo la Macro.

A questo punto abbiamo raggiunto lo scopo scrivendo una numerazione nella colonna “A” da 1 a 100.

Nel prossimo vedremo praticamente come funziona questa Macro.

Bye Bye.

By |2019-03-19T17:10:35+02:00Marzo 19th, 2019|Categories: Programmazione del Nonno|Commenti disabilitati su Programmazione del Nonno #4 For…Next

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