micdas Moderatore Excel

Posts: 35
Registrato il: 24-02-2008

| Ultima modifica: micdas on 07 Mar, 2008 2:24:56 am |
|
Posted: 07 Mar, 2008 2:15:29 am |
|
Questo può servire a chi è proprio è a digiuno di VBA.
Entrando nell'editor VBA (ALT + F11 ) veniamo presi da sgomento.
Da dove cominciare? Che scrivere?
Se proprio non sappiamo che fare torniamo in Excel.
Prepariamoci a fare una cosa qualsiasi.
Iniziamo a preparare una semplice tabella come quella indicata nella figura:
Attiviamo ora il registratore di macro.
Se si usa una versione di Excel fino alla 2003 possiamo farlo dal menù
Strumenti ---> Macro ---> registra nuova macro
Se si usa Excel 2007
Visualizza ---> Macro ---> Registra macro
Verrà una finestra simile a questa:
Facciamo clic su OK e vedremo quest'altra piccola finestra:
Se non si vede questa finestra non importa, ma proseguiamo con le nostre operazioni.
A questo punto completiamo la tabella che avevamo iniziato calcolando il totale per i nostri prodotti.
1 - Quindi selezioniamo la cella D2
2 - scriviamo: =
3 - col mouse selezioniamo la cella A2
4 - continuiamo con lo scrivere *
5 - col mouse selezioniamo la cella B2
6 - premiamo il tasto Invio
Ripetiamo ora le stesse operazioni qui sopra descritte a partire dal punto n° 2
Finite queste operazioni premiamo sul quadratino della finestra che ancora galleggia sul foglio di Excel.
Se la finestra non è visualizzata torniamo al menù
Strumenti ---> Macro ---> Interrompi registrazione.
Ora andiamo in VBA dove troveremo la presenza di un nuovo modulo denominato molto probabilmente Modulo1
Facciamo un doppio clic su questo modulo e vedremo una pagina dove sarà scritto del codice.
Questo è il risultato di quanto abbiamo registrato.
Sub Macro1()
'
' Macro5 Macro
' Macro registrata il 07/03/2008 da Mike
'
'
Range("D2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("D3").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("D4").Select
End Sub
Le righe che iniziano con un Apice semplice e colorate di verde sono dei semplici commenti e, se si vuole, si possono semplicemente cancellare.
Le prime istruzioni significative sono:
Range("D2").Select
che indica la cella da selezionare
ActiveCell.FormulaR1C1
Con ActiveCell viene indicato che la formula che segue viene scritta nella cella appena selezionata.
Dopo il segno "=" notiamo subito delle formule oscure:
= "=RC[-2]*RC[-1]"
Queste istruzioni vogliono dire semplicemente questa cosa:
il valore che si trova nella stessa riga, due colonne più a sinistra (C[-2]) viene moltiplicato per il valore che si trova nella stessa riga, una colonna più a sinistra (C[-1])
Queste indicazioni sono relative alla cella D2 ed alla cella, D3, per cui rappresentano le celle B2 e C2 nella prima espressione e le celle B3 e C3 nella seconda espressione.
Un codice così è vistosamente ridondante per cui possiamo passare alla pulizia e, se necessario, modifiche del codice.
I commenti possiamo cancellarli senza timore alcuno
Le formule nelle varie celle le possiamo inserire senza eseguire alcuna selezione (questa cosa sarà argomento di eventuali successive discussioni anche perchè non eseguendo selezioni risparmieremo tempo e codice oltre ad evitare fastidiosi sfarfallamenti del foglio)
Nel nostro caso per inserire le formule senza eseguire selezioni è sufficiente scrivere queste semplici istruzioni:
Range("D2") = Range("B2") * Range("C2")
Range("D3") = Range("B3") * Range("C3")
Per cui, dopo la pulizia del codice, verremo a trovarci con questa situazione:
Sub Macro1()
Range("D2") = Range("B2") * Range("C2")
Range("D3") = Range("B3") * Range("C3")
End Sub
Queste istruzioni da sole non lavorano. Per farle lavorare occorre che sul foglio di lavoro ci sia un oggetto ad esse associato.
Un probabile oggetto potremo prelevarlo dalla barra dei moduli e, tra i vari oggetti, quello più appropriato è il Pulsante.
Per visualizzare la barra dei moduli:
in Excel 2003:
Visualizza ---> Barre degli strumenti ---> Moduli
in Excel 2007:
Inserisci ---> controlli modulo
Da questa barra prendiamo il pulsante e lo disegnamo sul foglio.
Appena poggiato sul foglio ci chiede, tramite una finestra, quale macro assegnargli, mostrandoci tutte le macro contenute nell'editor VBA.
Noi vedremo la sola Macro1, Quindi la scegliamo e premiamo su OK
Da questo momento, ogni volta faremo clic sul pulsante nelle celle D2 e D3 verrà visualizzato il prodotto delle relative celle poste nelle celle B2 e C2 e nelle celle B3 e C3
Per ora penso che basti. La prossima volta sarà un po' più impegnativo
Buon lavoro |
|
|