Condividi:        

Eseguire macro passando il mouse su una cella

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

Eseguire macro passando il mouse su una cella

Postdi alby60 » 17/03/12 00:18

Ciao a tutti
espongo subito la mia richiesta. Vorrei eseguire una macro quando passo il mouse su una cella. Ho cercato in rete e non ho trovato nulla che potesse risolvere la mia esigenza. Non ho trovato eventi che si possano attivare con movimento del mouse. Grazie in anticipo
alby60
Utente Junior
 
Post: 76
Iscritto il: 18/11/10 01:04

Sponsor
 

Re: Eseguire macro passando il mouse su una cella

Postdi ricky53 » 17/03/12 02:16

Ciao,
non esiste l'evento "MouseMove" specifico del foglio.

Volendo puoi utilizzare un artificio: inserire un "Controllo Immagine" davanti la tua cella ed impostate la proprità "BackStyle" a "ZERO" (Trasparente) e nell'evento "MouseMove" inserire il codice che vuoi venga eseguito.

Esempio
Codice: Seleziona tutto
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Msgbox "Passato il mouse sulla cella"
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Eseguire macro passando il mouse su una cella

Postdi Anthony47 » 17/03/12 02:33

Anche io avrei suggerito quanto scritto da Ricky (vedi sopra).
Tieni presente che, quando sei sull' oggetto, l' evento si reinnesca ripetitivamente appena muovi il mouse; se questo da' fastidio allora dovrai inserire nella stessa macro il codice affinche' essa non si riesegua fintanto che non "riarmi" il meccanismo (per il riarmo potresti usare una seconda immagine di dimensioni maggiori alla prima, e usare il suo evento Image2_Mouseover)

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eseguire macro passando il mouse su una cella

Postdi Anthony47 » 17/03/12 15:54

Ieri sera non sono stato molto esplicito sull' uso della seconda immagine; essa deve contornare la prima (quella che innesca la macro), come da disegno:
Immagine

Uploaded with ImageShack.us


Legenda:
Immagine 2, il suo MouseMove riabilita' la macro (mette flag Esegui su True)
Immagine 1, il suo MouseMove esegue una volta la macro e setta il Flag Eseg su False

Questo grosso modo corrisponde al seguente codice:
Codice: Seleziona tutto
Dim Esegui As Boolean    'In TESTA al modulo

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Esegui Then
    Call MiaMacro
    Esegui = False
End If
End Sub

Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Esegui = True
End Sub


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eseguire macro passando il mouse su una cella

Postdi alby60 » 18/03/12 01:01

Ciao a tutti, grazie Ricky53 per l'idea dell'immagine e grazie ad Anthony47 per la soluzione delle due immagini che evita di eseguire la macro ad ogni movimento del mouse. Che dire ragazzi siete proprio pieni di idee e non solo di conoscenza.
alby60
Utente Junior
 
Post: 76
Iscritto il: 18/11/10 01:04

Re: Eseguire macro passando il mouse su una cella

Postdi Anthony47 » 19/03/12 00:20

In risposta a un paio di mp aggiungo, per ulteriore chiarezza:
-si parla di usare il "Controllo Immagine" disponibile nella barra degli "Strumenti di controllo"
-dovete adattare il codice ai nomi dei vostri oggetti: non e' detto che il primo che create venga chiamato Immagine1 e il secondo Immagine2. Per questo attivate la Modalita' progettazione (l' icona con righello e squadra), disegnate l' oggetto (oppure selezionate l' oggetto, se gia' disegnato), premete l' icona Visualizza codice (**), scegliete l' evento MouseMove (menu' a discesa in alto a dx), completate la macro come da codice pubblicato
-la riga "Dim Esegui As Boolean" va messa in testa allo stesso modulo che contiene le macro di tipo MouseMove, cioe' sul "modulo di codice del foglio che contiene gli oggetti"; nella fase marcata ** (vedi sopra) vi posizionate automaticamente nel modulo corretto.

Ciao a tutti
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Eseguire macro passando il mouse su una cella

Postdi alby60 » 19/03/12 01:12

Ciao Anthony47, grazie per le precisazioni che hai scritto sono sempre utili e mi fa sempre piacere avere chiarimenti. Aggiungo che so usare un po' il codice e mi intendo di programmazione in basic, certamente non sono al vostro livello e controllo sempre i nomi degli oggetti che utilizzo e sto molto attento quando utilizzo le variabili e le definisco sempre prima ed utilizzo Option Explicit. Sono un autodidatta e non conosco molta terminologia ma vi seguo molto e cercando nel forum trovo sempre soluzione a quello che sto facendo e quando non la trovo vi scrivo. Grazie di nuovo.
alby60
Utente Junior
 
Post: 76
Iscritto il: 18/11/10 01:04


Torna a Applicazioni Office Windows


Topic correlati a "Eseguire macro passando il mouse su una cella":


Chi c’è in linea

Visitano il forum: Nessuno e 80 ospiti