Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Doppio click in una cella...

325 views
Skip to first unread message

Michele

unread,
Nov 16, 2015, 10:36:43 AM11/16/15
to
Ciao, spero di essere chiaro:
ho una procedura in visual basic (excel (2016 per mac) che tramite
pulsanti situati nel foglio, eseguono delle macro.
La macro abbinata ad uno di questi pulsanti fa apparire una finestra di
dialogo che chiede l' input di un determinato valore (un numero di
documento), e inserito questo valore, va in una variabile.

E' possibile anziche digitare il valore nella finestra di dialogo,
effettuare un doppio click sul valore specifico della cella, e che
questo valore mi vada nella variabile ?

Grazie per l'aiuto ;-)

--
Ciao
Michele

Vittorio

unread,
Nov 16, 2015, 1:50:19 PM11/16/15
to


"Michele" ha scritto nel messaggio news:n2ct66$1ua$1...@speranza.aioe.org...
<<E' possibile anziche digitare il valore nella finestra di dialogo,
<<effettuare un doppio click sul valore specifico della cella, e che
<<questo valore mi vada nella variabile ?


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
Dim g As Variant
g = Target.Value
'MsgBox (g) '(solo per verifica del valore di g, variabile locale o
globale, a seconda di come l'hai definita)
End Sub

casanmaner

unread,
Nov 16, 2015, 1:50:33 PM11/16/15
to
Non conosco la versione per Mac di excel ma in quella windows si può sfruttare l'evento Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) dei fogli.
Ad es. in un foglio (Es. Foglio1) se desidero che venga letto il valore di una data cella (es. C4) quando si fa doppio click nella stessa nel VBA del foglio stesso si può scrivere una cosa del genere:
===========
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
Application.EnableEvents = False
If Not Intersect(Target, Me.Range("C4")) Is Nothing Then MsgBox "Target Value: " & Target.Value
Application.EnableEvents = True
End Sub
============

Facendo doppio click su C4 compare un messaggio dove viene riportato il vaore presente nella cella.
Tieni presente che questo evento si attiva PRIMA del doppio click.
Quindi il valore che viene letto è quello che è presente nella cella prima che la stessa venga "aperta". Se modifichi il valore questo ultimo valore non viene "intercettato".

Forse potrebbe anche esserti utile l'evento che viene attivato quando il valore in una cella viene modificato.
Il riferimento è a Worksheet_Change(ByVal Target As Range).
Ad es. con questo codice se digiti un valore nella cella C4 viene visualizzato un message box che ritorna il valore inserito nella cella:
==================
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
If Not Intersect(Target, Me.Range("C4")) Is Nothing Then MsgBox "Target Value: " & Target.Value
Application.EnableEvents = True
End Sub
==================

Michele

unread,
Nov 16, 2015, 4:16:36 PM11/16/15
to
Il 16/11/15 19:50, casanmaner ha scritto:
Ti ringrazio per l'aiuto, è già un paio di ore che provo a copiarla,
inserirla, modificarla, ma non è al mio livello di conoscenza.
Provo a capire come funziona la routine che mi hai indicato
Grazie

--
Ciao
Michele

Michele

unread,
Nov 16, 2015, 4:18:21 PM11/16/15
to
Il 16/11/15 19:50, Vittorio ha scritto:
Come ho gia risposto a casanmaner, ti ringrazio, sto provando a capire
dove inserire le istruzioni, ma è un lavoro fuori dalla mia portata
evidentemente...
Grazie

--
Ciao
Michele

Vittorio

unread,
Nov 16, 2015, 4:44:25 PM11/16/15
to


<Come ho gia risposto a casanmaner, ti ringrazio, sto provando a capire
<dove inserire le istruzioni, ma è un lavoro fuori dalla mia portata
<evidentemente...

Avete trovato in una pagina Internet, oppure avete avuto in risposta ad una
vostra richiesta in un forum o in un newsgroup, del codice Visual Basic da
copia/incollare nel vostro file di Excel. Ok, tutto molto bello e quasi
sicuramente farà ciò che volete, ma... ma dove metterlo?

http://answers.microsoft.com/it-it/office/wiki/office_2013_release-excel/excel-dove-e-come-inserire-il-codice-visual-basic/ed29ee63-a537-4e5d-8631-76766cf40503

Michele

unread,
Nov 17, 2015, 2:11:55 AM11/17/15
to
Il 16/11/15 22:44, Vittorio ha scritto:
Grazie per il link Vittorio, adesso me lo studio bene.. ;-)


--
Ciao
Michele

casanmaner

unread,
Nov 17, 2015, 2:14:15 AM11/17/15
to
Selezioni la linquetta del foglio per il quale vuoi che la procedura si attivi, fai click con il destro del muose e selezioni la voce "Visualizza codice".
In quel modulo, che è il modulo VBA del foglio di lavoro, incolli i codici che ti ho inserito.
Ovviamente dovrai inserire il riferimento alla cella che ti interessa e inserire la variabile, rendendola pubblica nel modulo standard dove è presente la macro che utilizzi normalmente, che vuoi venga "riempita" dal valore presente nella cella interessata.

Michele

unread,
Nov 17, 2015, 3:16:01 AM11/17/15
to
Il 17/11/15 08:14, casanmaner ha scritto:
Grazie anche a te per la pazienza e comprensione ;-)

--
Ciao
Michele
0 new messages