Benvenuto

Forum del sito Nina art e graphic - grafica e non solo.... > Piccole routines in VBA > La prima macro o routine VBA
Non sei collegato. Entra oppure Registati.

1

  

Piccole routines in VBA :: La prima macro o routine VBA

Autore: Topic: La prima macro o routine VBA
 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    
Profilo homepage email micdas

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

 

mike
 admin
 Nina


 Posts: 60
 Registrato il:
   23-02-2008

 MSN: ninagraphic@hotmail.it  



Posted: 07 Mar, 2008 8:13:54 am    
Profilo homepage email admin

Bravissimo Mike come inizio è perfetto.....

Alla prossima

 

Nina...

1

  

 Powered by UPB Version : 2.1.1b | Template by: Nina art & graphics ~ Loretta B. ©2007/2008 pagina generata in 0.01736 seconds PHP Outburst ©2002 - 2009

www.myupb.com