Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[EXCEL] Uso "elementare" di If e GoTo su vba

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[EXCEL] Uso "elementare" di If e GoTo su vba

Postdi LucaXls » 21/09/10 14:00

Salve a tutti, ho un problema credo di facile risoluzione ma ho l'impressione di starmi perdendo in un bicchier d'acqua.

Sto creando delle macro con excel (non conosco il linguaggio vbasic, quindi registro i passi con la procedura guidata e poi aggiusto il tiro manualmente - andando su macro->modifica - per quel minimo che intuisco dal codice vba).

Ora è sorto un problema, vorrei che una macro facesse tutte le operazioni solo se in determinate celle ci fossero i giusti valori, altrimenti dovrebbe terminare.

Per esempio, se nella cella A1 c'è un 10 e la somma dell'intervallo di celle A2:B10 è minore di 100, allora la macro può attivarsi, altrimenti no.

Pensavo alle semplici istruzioni IF e GoTo, dove se la condizione di IF non è rispettata, il GoTo porta all'ultima riga della macro, facendola terminare.

Tutto semplice ok, ma la sintassi???

Ho scoperto per esempio che scrivere

GoTo Line100
'il mio intento sarebbe far eseguire l'istruzione alla riga 100

dà errore, mentre scrivere

GoTo FANTASIA

e poi alla riga 100 scrivere

FANTASIA:

produce il risultato sperato...

L'ho scoperto a via di prove perchè a leggere la guida online di vba fornita dall'office non è per niente chiaro tutto ciò...

A questo punto mi chiedo... qual è la sintassi per IF???

Oppure mi suggerite di non utilizzare l'accoppiata IF-GOTO perchè esiste una soluzione migliore???

Grazie per l'eventuale aiuto!
LucaXls
Utente Junior
 
Post: 33
Iscritto il: 28/06/06 05:29

Sponsor
 

Re: [EXCEL] Uso "elementare" di If e GoTo su vba

Postdi Anthony47 » 21/09/10 14:37

Benissimo sul discorso di registrare e poi modificare...

Per il quesito posto potresti usare qualcosa come
Codice: Seleziona tutto
If range("A1").value <> 10 then exit Sub
If range("Z1").value >= 100 then exit Sub   
In Z1 (o altra cella libera) metterai la formula =SOMMA(A2:B10); potresti anche fare questo calcolo direttamente nella macro con le istruzioni WorksheetFunction.Sum (la sintassi di Sum e' quella di Somma, traslata in vba), ma appoggiandoti su formule puoi fare ancora piu' semplicemente.

Puoi anche condensare ambedue le condizioni in una sola riga:
Codice: Seleziona tutto
If range("A1").value <> 10 Or range("Z1").value >= 100 then exit Sub   

Oppure puoi usare la notazione piu' classica:
Codice: Seleziona tutto
If range("A1").value = 10 And range("Z1").value < 100 then
'
'Istruzioni da eseguire su condizione
'
End If

Personalmente trrovo l' help on line utilissimo, una vera miniera di informazioni; quindi non trascurarlo.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Uso "elementare" di If e GoTo su vba

Postdi LucaXls » 21/09/10 15:14

Ottimo!!

Anthony "vengo a trovarti" raramente e ti trovo sempre tempestivo e precisissimo... GRAZIE, che altro dire!!

Ottime le condizioni di uscita in cascata così come l'if espresso tutto in una riga, e ottimo il comando exit sub che ignoravo esistesse.

E se volessi inserire, dopo il then, anzichè una sola istruzione (exit sub), due istruzioni?

Dovrei racchiuderle in una parentesi quadra o cos'altro?
LucaXls
Utente Junior
 
Post: 33
Iscritto il: 28/06/06 05:29

Re: [EXCEL] Uso "elementare" di If e GoTo su vba

Postdi Anthony47 » 22/09/10 08:56

Con poca fantasia:
Codice: Seleziona tutto
If range("A1").value <> 10 Or range("Z1").value >= 100 then
   'Istruzione
   'istruzione
   '....
   exit Sub   
End If

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Uso "elementare" di If e GoTo su vba

Postdi LucaXls » 22/09/10 13:41

Bene!

A logica c'ero... era la sintassi esatta che mi mancava...

ancora grazie! ;)
LucaXls
Utente Junior
 
Post: 33
Iscritto il: 28/06/06 05:29


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Uso "elementare" di If e GoTo su vba":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti