citizenbaban
XLDnaute Junior
Bonjour à tous,
Petit problème avec une Private Sub. Je voudrais que s'insère automatiquement en colonne A l'année de saisie d'une cellule de la colonne B afin de réaliser un tri des lignes en différents onglets.
C'est la partie verte du code qui marche bien.
Mais quand je fais une modif sur une cellule de la colonne B déjà remplie, disons en 2017, ou même un simple double clic ce qui peut arriver accidentellement, la cellule A correspondante se met à jour en affichant 2019.
J'ai essayé de contourner ça mais sans succès (partie orange) et je n'arrive pas à reformuler mon code autrement.
Est-ce que l'un de vous aurait une piste pour ça ?
Le problème est qu'une fois à l'exit sub, la macro ne se relance pas si je modifie d'autres cellules de la colonne B.
Merci pour votre aide
Citizen
Petit problème avec une Private Sub. Je voudrais que s'insère automatiquement en colonne A l'année de saisie d'une cellule de la colonne B afin de réaliser un tri des lignes en différents onglets.
C'est la partie verte du code qui marche bien.
Mais quand je fais une modif sur une cellule de la colonne B déjà remplie, disons en 2017, ou même un simple double clic ce qui peut arriver accidentellement, la cellule A correspondante se met à jour en affichant 2019.
J'ai essayé de contourner ça mais sans succès (partie orange) et je n'arrive pas à reformuler mon code autrement.
Est-ce que l'un de vous aurait une piste pour ça ?
Le problème est qu'une fois à l'exit sub, la macro ne se relance pas si je modifie d'autres cellules de la colonne B.
Merci pour votre aide
Citizen
Code:
Private Sub worksheet_change(ByVal Target As Range)
Dim h, iSct As Range
Set iSct = Intersect(Target, Range("B2:B50000"))
If iSct Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each h In iSct.Cells
If IsEmpty(h) Then
h.Offset(0, -1) = ""
ElseIf h.Offset(0, -1) <> "" Then
Exit sub
Else
h.Offset(0, -1) = Format(Now, "yyyy")
End If
Next
Application.EnableEvents = True
End Sub