Ciaa Daniele,
questo codice non va inserito in una macro di modulo ma nel foglio1 (o foglio2 etc)
Apri una cartella vuota e vai su Strumenti > Macro > Visual basic editor
nella finestra di sinistra hai i fogli (1, 2 e 3) clicchi sul foglio1 e incolli questo codice
- Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then pippo
End Sub
Poi inserisci un modulo con una macro (es questa):
- Codice: Seleziona tutto
Sub pippo()
MsgBox "Funziona!"
End Sub
Vai sul foglio1 e clicchi due volte su Cella A1 e apparirà il messaggio.
Il vero significato del codice Cancel As Bolean non te lo so dire (non sono un programmatore) ma quel codice lo ottieni già di default come opzioni quando scegli, nel VBA del foglio, Worksheet invece che "generale", nella finestrella a destra trovi l' opzione BeforeDoubleClick (e anche altre).
Con quel codice, in effetti stai "dicendo" che con qualsiasi doppio click sul foglio farà eseguire l'operazione successiva.
Ma...
se vedi il codice successivo
- Codice: Seleziona tutto
If Target.Address = "$A$1" Then pippo
dici che solo se l'indirizzo è A1 dovrà eseguire la macro Pippo altrimenti non succede nulla (senza la condizione, ogni doppio click sul foglio avrebbe fatto eseguire la macro).
Se metti una If e... Then non occorre Call
ma se all'interno di una macro non hai l'If devi per forza mettere una call "macro" e non Then "macro".
Ciao
Ciao