VBA: code pour affichage dernière modif d'une ligne dans cellule

Résolu/Fermé
gexelpa - Modifié par pijaku le 28/11/2013 à 08:34
 gexelpa - 28 nov. 2013 à 22:24
Bonjour,

J'ai un tableau pour le quel j'ai 2 codes dans vba:

le 1er sert à faire un comptage dans la colonne D, par dbl clic dans une cellule de cette même colonne.

code:

Option Explicit
Const plagemaj = "d10:d100"


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range(plagemaj)) Is Nothing Then
  Target.Value = Target.Value + 1
  Target.Offset(1, 0).Select
End If
End Sub



le 2ème sert à faire apparaitre en colonne b, la date de dernière modif des cellules de la ligne concernée, pour la plage de cellules allant de la colonne E, à la colonne DR.

code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Byte

If Intersect(Target, Range("e1:Dr100")) Is Nothing Or Target.Count > 1 Then: Exit Sub
Row = Target.Column
Cells(Target.Row, 2) = Target.Address & " modifiée le " & Format(Date, "dd/mm/yy")
End Sub



Mais les 2 codes ont l'air d'être en conflit car dans les2 cas, que ce soit dbl clic en colonne D ou modif dans une cellule comprise entre colonne E&DR), le message d'erreur est le même:
"Erreur de compilation - variable non défini" et bogage apparait sur :"Private Sub Worksheet_Change(ByVal Target As Range)"


Je galère vraiment, donc votre aide me sera précieuse...
Merci d'avance !

1 réponse

Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 64
Modifié par pijaku le 28/11/2013 à 08:34
Bonjour,

Option Explicit
Const plagemaj = "d10:d100"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, Range(plagemaj)) Is Nothing Then
  Application.EnableEvents = False
  Target.Value = Target.Value + 1
  Application.EnableEvents = True
  Target.Offset(1, 0).Select
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("e1:Dr100")) Is Nothing Or Target.Count > 1 Then: Exit Sub
Cells(Target.Row, 2) = Target.Address & " modifiée le " & Format(Date, "dd/mm/yy")
End Sub


Jacques Boisgontier
0
Bonjour Jacques,

Merci pour le coup de main, c'est ce qu'il me fallait.

Crdlt
0