Grazie Alfredo;
quello che mi hai scritto va bene per il range di selezione, ma come faccio a far apparire il risultato in celle diverse ( cioè per A:A10 su Track Z1 e per C1:C10 su Track Z2?)
Grazie
Moderatori: Anthony47, Flash30005
Cose che succedono solo in questo forum...Fantina ha scritto: Proprio in questi giorni stavo pensando a dove era finito il mio post su questo argomento dato che mi è appena arrivato fresco fresco un file condiviso a cui sarebbe utile applicare il meccanismo e ..... eccovi qui ....
Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
CheckArea = "A2:A10" '<<< Area da tenere sotto controllo
Track = "Z1" '<<< Cella dove scrive data/Ora
If Not Application.Intersect(Target, Range(CheckArea)) Is Nothing Then
Range(Track).Value = Now()
End If
CheckArea = "B2:B10" '<<< Seconda Area da tenere sotto controllo
Track = "Z2" '<<< Cella dove scrive data/Ora
If Not Application.Intersect(Target, Range(CheckArea)) Is Nothing Then
Range(Track).Value = Now()
End If
'eventuali altri blocchi per altre Aree
Application.EnableEvents = True
End Sub
If Not Application.Intersect(Target, Range(CheckArea)) Is Nothing Then
Range(Track).Value = Now()
Range(Track).Offset(0, 1).Value = Environ("ComputerName")
Range(Track).Offset(0, 2).Value = Environ("USERDOMAIN")
Range(Track).Offset(0, 3).Value = Environ("UserName")
End If
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "F2:G10" '<<< Area da tenere sotto controllo
Track = "Z1" '<<< Cella dove scrive data/Ora
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
Application.EnableEvents = False
Range(Track).Value = Now()
Application.EnableEvents = True
End Sub
alfrimpa ha scritto:Ciao AciGatsu
Perchè non provi a spiegare materialmente quello che vuoi fare e poi si vedrà se modificare la sub di Anthony (che saluto) o scrivere una function ex novo.
SEZIONE PRINCIPALE
Colonna1 Colonna 2 Colonna 3 colonna 4
Macro attività 1
Sotto attività1 [cella11] [cella12] [cella 13] [cella 14]
Sotto attività2 [cella21] [cella22] [cella 23] [cella 24]
Sotto attività3 [cella31] [cella32] [cella 33] [cella 34]
Macro attività 2
Sotto attività4 [cella41] [cella42] [cella 43] [cella 44]
Sotto attività5 [cella51] [cella52] [cella 53] [cella 54]
Sotto attività6 [cella61] [cella62] [cella 63] [cella 64]
Macro attività 3
ecc.....
Macro attività 1 [data da aggiornare]
Macro attività 2 [data da aggiornare]
Macro attività 3 [data da aggiornare]
alfrimpa ha scritto:Scusa Aci
Nel mio intervento precedente avevo dimenticati di dire che dovresti allegare un file di esempio con dati (non sensibili), spiegazione e risultato che vorresti ottenere (e dove) inserito manualmente.
Questo faciliterebbe molto chi volesse risponderti.
P.S. Forse è meglio che apri una nuova discussione con il tutto.
alfrimpa ha scritto:Devi usare un sito di file sharing tipo filedropper, dropcanvas o simili
alfrimpa ha scritto:Ciao Aci
Scusa ma in "Data Ultimo Aggiornamento Stato della macro attività" la data di quale campo deve apparire? Inizio attività teorica Inizio attività reale Fine attività teorica Fine attività reale?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim attività As String
Dim scarto As Integer
If Not Intersect(Target, Range("c4:G18")) Is Nothing Then
Select Case Target.Column
Case Is = 3
scarto = -1
Case Is = 4
scarto = -2
Case Is = 5
scarto = -3
Case Is = 6
scarto = -4
End Select
attività = Target.Offset(0, scarto).Value
With Sheets("Foglio1").Range("k20:k24")
Set rng = .Find(What:=attività, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing Then
rng.Offset(0, -2).Value = Target.Value
End If
End With
End If
End Sub
alfrimpa ha scritto:Ciao Aci
Prova a vedere il file allegato dove ho inserito la macro qui sotto
http://dropcanvas.com/qv1dt
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim attività As String
Dim scarto As Integer
If Not Intersect(Target, Range("c4:G18")) Is Nothing Then
Select Case Target.Column
Case Is = 3
scarto = -1
Case Is = 4
scarto = -2
Case Is = 5
scarto = -3
Case Is = 6
scarto = -4
End Select
attività = Target.Offset(0, scarto).Value
With Sheets("Foglio1").Range("k20:k24")
Set rng = .Find(What:=attività, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing Then
rng.Offset(0, -2).Value = Target.Value
End If
End With
End If
End Sub
Ovviamente va ampliata e completata con tutto l'elenco delle attività
rng.Offset(0, -2).Value = Target.Value
rng.Offset(0, -2).Value = Now
alfrimpa ha scritto:Ed aggiungo cosa intendi quando dici: "vorrei che fosse dinamica la scelta del range"
Torna a Applicazioni Office Windows
Macro per aprire file salvato su sharepoint Onedrive Autore: marcopont |
Forum: Applicazioni Office Windows Risposte: 2 |
Importare immagini a seconda del testo in una cella Autore: Paolo67met |
Forum: Applicazioni Office Windows Risposte: 4 |
Come impostare il formato data predefinito in excel? Autore: wallace&gromit |
Forum: Applicazioni Office Windows Risposte: 5 |
Visitano il forum: Nessuno e 36 ospiti