Attivare macro con evento
Hai un problema con Excel? 
Attivare macro con evento
di Julio data: 23/03/2013 18:12:46
Ciao, e' possibile far partire un msgbox appena l'operatore seleziona una cella per scrivere qualcosa?
Grazie
di Textomb data: 23/03/2013 18:33:57
Devi catturare l'evento Worksheet_Change del foglio di lavoro.
di Textomb data: 23/03/2013 18:39:33
cioè intendevo dire Worksheet_SelectionChange...
di Textomb data: 23/03/2013 18:43:21
Quindi, se la cella in questione è la A4 dovrai entrare nel foglio in cui sussiste la tua esigenza e scrivere...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$4" Then MsgBox "ciao fratello!!!"
End Sub
|
di Julio data: 23/03/2013 20:37:34
Wow!
Lo proverò. Grazie
Quando puoi, potresti spiegarmi il codice:"target.address" ?
Grazie
Ps. E se volessi far partire una vera e propria macro (non solo un msgbox) appena l'operatore ha digitato qualcosa (ad esempio un numero) e lo ha confermato nella cella ( ad esempio con il tasto invio o con un clic del mouse su un punto qualunque del foglio?...forse e' meglio se apro una nuova discussione su questo tema.
di Vecchio Frac data: 23/03/2013 21:40:24
If Target.Address = "$A$4" Then
-oppure-
If Target = [A4] Then
L'evento SelectionChange si scatena quando sposti la cella attiva con la tastiera o con il mouse.
Se la cella attiva diventa la A4 allora compare il messaggio.
La differenza tra le due righe di codice di cui sopra è solo che in quella di Textomb verifichi l'indirizzo del target (che è la cella attiva) il quale viene rappresentato sotto forma di stringa; nel codice più compatto viene eseguito un Evaluate che verifica che il Target (che è un oggetto di tipo Range, come si capisce dalla firma dell'evento) sia la cella [A4].
In entrambi i casi l'effetto è identico.
Per rispondere alla seconda domanda, rileggi il post in cui Textomb aveva citato l'evento _Change: funziona in modo identico solo che viene richiamato quando l'utente modifica il contenuto di una cella. Ricordati di impostare Application.EnableEvents a False quando entri in una di queste routine e reimpostarlo a True all'uscita, per evitare inutili ricorsioni.
di Julio data: 23/03/2013 22:50:31
Grazie, risposta, come sempre, esaustiva...come farete a sapere tutte queste cose proprio non ne ho idea.
Complimenti per la vostra preparazione.
Julio
Vuoi Approfondire?