Discussione:
BeforeDoubleClick
(troppo vecchio per rispondere)
Giulio
2006-10-02 14:11:38 UTC
Permalink
Utilizzo la macro
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean),
associata di default ad un Worksheet, per eseguire delle azioni quando
l'utente esegue un doppio click.

La macro esatta è questa:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
AzioneSuDoppioClick
End Sub

Se utilizzo questo stesso foglio in un'altra LAN (su PC differenti dal
mio), è come se la macro Worksheet_BeforeDoubleClick fosse
disabilitata.
Non ricevo nessun errore; ho inserito, per debug, un punto di
interruzione proprio nella riga che richiama AzioneSuDoppioClick, ma è
come se il doppio click non venidde rilevato o la macro non esistesse.

Cosa può impedire l'avvio della Private Sub
Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
associata ad un worksheet?

Grazie
Ciao
Giulio
Mauro Gamberini
2006-10-02 15:45:12 UTC
Permalink
Utilizzo la macro
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean),
associata di default ad un Worksheet, per eseguire delle azioni quando
l'utente esegue un doppio click.
**********************************************
<cut>

Ma la macro AzioneSuDoppioClicK è registrata solo sul tuo pc?
Voglio dire, le altre macchine sanno dove trovarla?

Ancora.
Le macro sui quei pc sono abilitate?
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
Giulio
2006-10-02 17:14:46 UTC
Permalink
Mauro Gamberini ha scritto:

...
Post by Mauro Gamberini
Ma la macro AzioneSuDoppioClicK è registrata solo sul tuo pc?
Voglio dire, le altre macchine sanno dove trovarla?
Si certo.
Tieni presente che ho anche associato la stessa macro ad un pulsante e
viene eseguita correttamente.
Post by Mauro Gamberini
Ancora.
Le macro sui quei pc sono abilitate?
SI

Ciao
Norman Jones
2006-10-02 17:18:03 UTC
Permalink
Ciao Giulio,

'-------------------
Utilizzo la macro
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean),
associata di default ad un Worksheet, per eseguire delle azioni quando
l'utente esegue un doppio click.

La macro esatta è questa:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
AzioneSuDoppioClick
End Sub

Se utilizzo questo stesso foglio in un'altra LAN (su PC differenti dal
mio), è come se la macro Worksheet_BeforeDoubleClick fosse
disabilitata.
Non ricevo nessun errore; ho inserito, per debug, un punto di
interruzione proprio nella riga che richiama AzioneSuDoppioClick, ma è
come se il doppio click non venidde rilevato o la macro non esistesse.

Cosa può impedire l'avvio della Private Sub
Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
associata ad un worksheet?

'-------------------

Hai controllato che gli eventi non siano disattivati?

Per essere sicuro, esigui la macro:

'=============>>
Public Sub TestIt()
Application.EnableEvents = True
End Sub
'<<============

Ora, ripova il doppio click.


---
Regards,
Norman
Giulio
2006-10-02 17:48:17 UTC
Permalink
Post by Norman Jones
Ciao Giulio,
...
Post by Norman Jones
Hai controllato che gli eventi non siano disattivati?
'=============>>
Public Sub TestIt()
Application.EnableEvents = True
End Sub
'<<============
Ora, ripova il doppio click.
---
Regards,
Norman
Gli eventi erano già attivati.
Ho comunque eseguito ugualmente l'istruzione Application.EnableEvents =
True, ma non è cambiato nulla.
Grazie
Ciao
Norman Jones
2006-10-02 18:21:44 UTC
Permalink
Ciao Giulio,

'-------------
Gli eventi erano già attivati.
Ho comunque eseguito ugualmente l'istruzione Application.EnableEvents =
True, ma non è cambiato nulla.

'-------------

Se le macro sono abilitate e gli eventi sono attivati, posso pensare a
soltanto un'altra possibilità: forse c'e un errrore di ortografia nel nome
della macro.

Ad esempio, potrei riprodurre il problema utlizzando:

'=============>>
Private Sub Worksheet_BeforeDoublClick(ByVal Target As Range, _
Cancel As Boolean)
AzioneSuDoppioClick
End Sub
'<<=============

invece di

'=============>>
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
AzioneSuDoppioClick
End Sub
'<<=============

(DoubleClick ==> DoublClick)


---
Regards,
Norman
Giulio
2006-10-03 07:06:31 UTC
Permalink
Post by Norman Jones
Ciao Giulio,
...
Post by Norman Jones
Se le macro sono abilitate e gli eventi sono attivati, posso pensare a
soltanto un'altra possibilità: forse c'e un errrore di ortografia nel nome
della macro.
'=============>>
Private Sub Worksheet_BeforeDoublClick(ByVal Target As Range, _
Cancel As Boolean)
AzioneSuDoppioClick
End Sub
'<<=============
invece di
'=============>>
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
AzioneSuDoppioClick
End Sub
'<<=============
(DoubleClick ==> DoublClick)
Grazie ancora Norman per la tua gentile disponibilità.
Ho verificato e non c'è nessun errore di sintassi.
Inoltre occorre tener sempre presente che su altri PC (il mio e quello
della mia LAN su cui realizzo e sottopongo a test le macro) tutto
funziona correttamente.
Ho semplicemente copiato i file su un altro PC e la macro su evento non
viene eseguita.
Ma se ricopio lo stesso file sul mio PC, tutto funziona nuovamente come
dovrebbe.
Ecco perchè son convinto che ci sia qualche impostazione (privacy,
sicurezza, firewall o altro) che impedisca l'esecuzione delle macro su
evento.
Ho provato a spulciare tutte le opzioni su Excel ma non ne ho trovato
nessuna che mi abbia illuminato.
Mi è venuto un sospetto che verificherò stamattina.
Se si rivelerà fondato posterò un messaggio.
Grazie ancora a tutti.

P.S.
Mi interessa molto anche scoprire perchè la semplice macro che imposta
una formula su un foglio necessiti di ottenere il focus del foglio
stesso se i path sono assoluti.

Ciao
Giulio

Giulio
2006-10-02 18:01:05 UTC
Permalink
Post by Norman Jones
Ciao Giulio,
'-------------------
Utilizzo la macro
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean),
...
Post by Norman Jones
Se utilizzo questo stesso foglio in un'altra LAN (su PC differenti dal
mio), è come se la macro Worksheet_BeforeDoubleClick fosse
disabilitata.
Non ricevo nessun errore; ho inserito, per debug, un punto di
interruzione proprio nella riga che richiama AzioneSuDoppioClick, ma è
come se il doppio click non venidde rilevato o la macro non esistesse.
Cosa può impedire l'avvio della Private Sub
Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
associata ad un worksheet?
'-------------------
Hai controllato che gli eventi non siano disattivati?
'=============>>
Public Sub TestIt()
Application.EnableEvents = True
End Sub
'<<============
Ora, ripova il doppio click.
Idem.
Gli eventi erano già attivati; no comunque eseguito
Application.EnableEvents = True, ma non è cambiato nulla.

Ve ne dico anche un altra; osservate questa macro:

Sub FormuleElencoGenerale(WsEG As Worksheet, Optional WsP As String)
WsEG.Activate
WsEG.Range("Ins").FormulaR1C1 = "=COUNTA(R[1]C[2]:R[64990]C[2])+" &
CStr(WsEG.Range("Ins").Row + 1)
End Sub

Inserisce una formula in una cella di un worksheet ricevuto come
argomento della Sub.
Se elimino l'istruzione WsEG.Activate mi segnala un errore nella riga
WsEG.Range("Ins").FormulaR1C1 = "=COUNTA(R[1]C[2]:R[64990]C[2])+" &
CStr(WsEG.Range("Ins").Row + 1), come se il Range "ins" non esistesse
nel worksheet WsEG.

Me lo spiegate?

Grazie
Ciao
Giulio
Norman Jones
2006-10-02 18:54:12 UTC
Permalink
Ciao Giulio,

'-------------------
Ve ne dico anche un altra; osservate questa macro:

Sub FormuleElencoGenerale(WsEG As Worksheet, Optional WsP As String)
WsEG.Activate
WsEG.Range("Ins").FormulaR1C1 = "=COUNTA(R[1]C[2]:R[64990]C[2])+" &
CStr(WsEG.Range("Ins").Row + 1)
End Sub

Inserisce una formula in una cella di un worksheet ricevuto come
argomento della Sub.
Se elimino l'istruzione WsEG.Activate mi segnala un errore nella riga
WsEG.Range("Ins").FormulaR1C1 = "=COUNTA(R[1]C[2]:R[64990]C[2])+" &
CStr(WsEG.Range("Ins").Row + 1), come se il Range "ins" non esistesse
nel worksheet WsEG.

Me lo spiegate?

'-------------------

Se utilizzi la macro:

'=============>>
Sub FormuleElencoGenerale(WsEG As Worksheet, _
Optional WsP As String)
WsEG.Activate
WsEG.Range("Ins").FormulaR1C1 = _
"=COUNTA(R[1]C[2]:R[64990]C[2])+" _
& CStr(WsEG.Range("Ins").Row + 1)
End Sub
'<<=============
Post by Giulio
WsEG.Activate
non dovrebbe essere neccesario.

Io potrei creare un problema solltanto se il workbook di interesse
non fosse il workbook attivo e utilizzassi una macro secondaria del tipo:

'=============>>
Sub TestIt4Me()
Call FormuleElencoGenerale(Sheets("Foglio1"))
End Sub
'<<=============

Comunque si potrebbe evitare tal problema se si utilizzasse invece:

'=============>>
Sub TestIt4Me()
Call FormuleElencoGenerale(Workbooks("Pippo.xls"). _
Sheets("Foglio1"))
End Sub
'<<=============


---
Regards,
Norman
Loading...