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