Bonjour,
Grace aux exemples du forum, j'ai inséré un code permettant de noter quand une modification a été faite et qui l'a faite. Seulement voilà, j'ai un problème en utilisant la commande "ActiveCell.Row": Quand je valide une cellule, c'est la cellule du dessous qui devient active. Pour contourner cela, j'ai créé une variable
"ActiveCell.Row - 1". Cette solution n'est pas satisfaisante, car elle donne de mauvais réultats quand on filtre une colonne, quand on supprime des élements (la modif s'inscrit alors "vers le haut") ou quand une cellule est validée en utilisant la flèche vers le haut par exemple.
Auriez-vous une solution élegante pour que la "ActiveCell" soit effectivement celle qui vient d'etre modifiée?
Ci-dessous mon code, ci-joint un exemple.
Merci d'avance et bonne journée
Dominique
<- - - - -
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
If Sh.Name = "Unternehmen_Ernaehrung" Then
If Intersect(Source, Range("C2:AV11000")) Is Nothing Then
Else
DateModif = Now
NumLigne = ActiveCell.Row - 1
Utilisateur = UserStatus(1, 1)
Worksheets("Unternehmen_Ernaehrung").Range("B" & NumLigne).Value = DateModif
Worksheets("Unternehmen_Ernaehrung").Range("A" & NumLigne).Value = Utilisateur
End If
End If
End Sub
- - - - - >
Grace aux exemples du forum, j'ai inséré un code permettant de noter quand une modification a été faite et qui l'a faite. Seulement voilà, j'ai un problème en utilisant la commande "ActiveCell.Row": Quand je valide une cellule, c'est la cellule du dessous qui devient active. Pour contourner cela, j'ai créé une variable
"ActiveCell.Row - 1". Cette solution n'est pas satisfaisante, car elle donne de mauvais réultats quand on filtre une colonne, quand on supprime des élements (la modif s'inscrit alors "vers le haut") ou quand une cellule est validée en utilisant la flèche vers le haut par exemple.
Auriez-vous une solution élegante pour que la "ActiveCell" soit effectivement celle qui vient d'etre modifiée?
Ci-dessous mon code, ci-joint un exemple.
Merci d'avance et bonne journée
Dominique
<- - - - -
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
If Sh.Name = "Unternehmen_Ernaehrung" Then
If Intersect(Source, Range("C2:AV11000")) Is Nothing Then
Else
DateModif = Now
NumLigne = ActiveCell.Row - 1
Utilisateur = UserStatus(1, 1)
Worksheets("Unternehmen_Ernaehrung").Range("B" & NumLigne).Value = DateModif
Worksheets("Unternehmen_Ernaehrung").Range("A" & NumLigne).Value = Utilisateur
End If
End If
End Sub
- - - - - >