| | Post: 82 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
09/05/2020 08:04 | |
Salve a tutti,
vorrei sapere se immettendo un dato in
una colonna questo dato avvierebbe la
macro.
Se esiste come funzionerebbe?
Grazie dell'aiuto |
|
| | Post: 5.911 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
09/05/2020 08:17 | |
Ciao si è possibile, bisogna sfruttare gli eventi del foglio, sia selezionando una cella sia al cambiare il valore della cella.
però il codice Vba deve andare nel Modulo del Foglio interessato o dei fogli interessati,
gli eventi sono "SelectionChange" e "Change"
a che punto sei con il VBA? ecco un poco di codice che fa partire la macro se cambi il valore nel range "A1:A5"
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A5")) Is Nothing Then
"Nome tua macro"
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
la parte sotto e per la selezione, se selezioni il range interessato parte la macro, non ho duplicato il codice sopra.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 82 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
09/05/2020 10:56 | |
Salve Sal
cioè mettendo questo codice ad inizio macro
e scrivendo un numero nella prima cella vuota
partirebbe la macro?
Saluti Sal
Bye bye |
|
09/05/2020 13:27 | |
Ho modificato l'ultimo post (se Ti serve ancora...)
Dipende, da alcuni fattori. Alcune macro devono stare in un modulo,
altre tipo Worksheet_Change devono stare sul foglio (intendo che vai sulla linguette del foglio, Mouse-destro visualizza codice e lo scrivi sulla destra)
Come detto da By Sal, se il codice è idoneo ..meglio se cambi il Range("A1:A5").. in Range("A1"), chiudi salvando con nome.xlsm
Adesso se scrivi in A1 parte il codice [Modificato da ABCDEF@Excel 09/05/2020 13:29] |
| | Post: 83 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
09/05/2020 17:42 | |
salve ABC,
sto seguendo che
ho immesso la private sub
nel modulo del foglio
cioè ho clikkato dx e incollato
quanto scritto Sal.
Nel private fra virgolette ho digitato
il nome della macro.
Però di da sintassi errata.
poi nella seconda private ho inserito la
mia macro e appunto che clikkando su una cella
della colonna A mi da errore di sintassi
come vado avanti?
grazie dell'intervento |
| | Post: 84 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
09/05/2020 18:01 | |
se si può fare così:
sono nel modulo del foglio ="dati"
qui inserisco Private...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A8:A307")) Is Nothing Then
"formule" (il nome della ia macro)
End If
End Sub
poi
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
formule e sotto inserisco il codice
dopo che ho scritto il dato in A8
inizia la macro con:
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Select
eccetera ecc...
End Sub
cosa e dove correggere |
|
09/05/2020 19:44 | |
Worksheet_Change e Worksheet_SelectionChange sono due cose differenti
Con questa appena scrivi in colonna A. Mette la data in B
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then Target.Offset(0, 1).Value = Now
End Sub
Con questa appena scrivi in C1, appare un Msg e Ti avvia una macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C1")) Is Nothing Then
MsgBox "avvio macro"
Call nometuamacro
End If
End Sub
Tua= Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A8:A307")) Is Nothing Then
Call nometuamacro
End If
End Sub |
| | Post: 85 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
09/05/2020 20:16 | |
Va benissimo
Grazie dell'aiuto
gga46 |
| | Post: 86 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
10/05/2020 11:04 | |
Salve ABC,
se si può apportare una correzione nel senso
che, ho riportato questo:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A8:A307")) Is Nothing Then
Call nometuamacro
End If
End Sub
a volte apporto dei dati anche nelle celle da 1 a 7
se cambio
Range("A1") va in funzione la macro che mi cambia
i dati nelle colonne successive.
Lasciando il Range 8-307 e inserisco un dato da 1 a 7
blocca la macro e mi da ERRORE DI SINTASSI
Salve
|
| | Post: 87 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
10/05/2020 12:19 | |
il mio è un tentativo
da inserire nella macro
dim cella as range
cella = ["A:A"]
if cella rif.riga <8 then cella ""(non avviare la macro) mi da Er Sint
else
macro mia
end if
end sub
|
|
10/05/2020 13:41 | |
Allega un files spiegando bene oppure non posso aiutarTi
>>>If Not Intersect(Target, Range("A8:A307")) Is Nothing Then
Non avvii la macro se scrivi in A1:A7
Se Vuoi fare due cose differenti
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A7")) Is Nothing Then
'fai quello che vuoi
ElseIf Not Intersect(Target, Range("A8:A307")) Is Nothing Then
Call nometuamacro
End If
End Sub
Casomai sarebbe If Target.Row < 8 Then |
| | Post: 88 | Registrato il: 04/03/2020
| Età: 77 | Utente Junior | 2019 | | OFFLINE | |
|
10/05/2020 14:31 | |
Salve ABC,
ho aggiunto la correzione al problem richiesto
ed ora funziona alla perfezione.
Ancora grazie e ti auguro buona domenica
Colgo l'occasione per fare gli
auguri a tutte le
MAMME DEL MONDO
presenti, per chi ce l'ha
e non alle mande che stanno all'altro mondo.
Saluti ABC. |
|
|