Bonjour,
J’ai fait des recherches dans le forum, mais je ne trouve pas ce que je cherche. Je ne suis pas très habile avec VBA.
J’ai un fichier de sortie d’articles. Pour chaque code d’article saisi, mon fichier affiche toutes les informations relatives à cet article ainsi que la date du jour (code de feuille).
J’aimerais être en mesure de saisir une séquence (numérotation colonne 1) en boucle par date de saisie des articles. Autrement dit, numérotation en continu tant et aussi longtemps que la date reste la même. Au changement de date, la numérotation doit recommencer à 1.
Pour illustrer ma demande, j’ai joint un fichier réduit de ce que j’aimerais avoir en colonne 1.
Merci à l’avance de votre aide. C’est vraiment très apprécié.
@domichou, attention vous avez aussi des dates avec le temps ( par ex 05/01/2023 13:19:27 ) si XL trouve 1 seconde d'écart alors ce sera une nouvelle date, que ce soit en formules ou en VBA.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
Application.EnableEvents = False
Derlig = [Tableau1].Rows.Count
If Not Application.Intersect(Target, Range("B2:B" & Derlig)) Is Nothing Then
Cells(Target.Row, 6) = Now
End If
DateEnreg = [Tableau1[Date]].Item(1)
N = 1
[Tableau1[Séquence]].Item(1) = N
For L = 2 To Derlig
If [Tableau1[Date]].Item(L) <> "" Then
If [Tableau1[Date]].Item(L) = DateEnreg Then
N = N + 1
Else
DateEnreg = [Tableau1[Date]].Item(L)
N = 1
End If
[Tableau1[Séquence]].Item(L) = N
End If
Next L
Application.EnableEvents = True
End Sub
Attention dans votre fichier F9 n'est pas une date mais du texte. J'ai rectifié en PJ.
Bonsoir Waiki,
Ca marche impec si toutes les dates sont croissantes.
Mais si une date se répète plus loin dans la séquence alors ça ne colle plus :
Tout va dépendre de l'utilisation qu'en fera Domichou.
@domichou, attention vous avez aussi des dates avec le temps ( par ex 05/01/2023 13:19:27 ) si XL trouve 1 seconde d'écart alors ce sera une nouvelle date, que ce soit en formules ou en VBA.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
Application.EnableEvents = False
Derlig = [Tableau1].Rows.Count
If Not Application.Intersect(Target, Range("B2:B" & Derlig)) Is Nothing Then
Cells(Target.Row, 6) = Now
End If
DateEnreg = [Tableau1[Date]].Item(1)
N = 1
[Tableau1[Séquence]].Item(1) = N
For L = 2 To Derlig
If [Tableau1[Date]].Item(L) <> "" Then
If [Tableau1[Date]].Item(L) = DateEnreg Then
N = N + 1
Else
DateEnreg = [Tableau1[Date]].Item(L)
N = 1
End If
[Tableau1[Séquence]].Item(L) = N
End If
Next L
Application.EnableEvents = True
End Sub
Attention dans votre fichier F9 n'est pas une date mais du texte. J'ai rectifié en PJ.
Bonsoir Sylvanu,
Je ne sais pas si c'est moi qui fait quelque chose de pas correct, mais je n'obtiens pas le résultat escompté.
Si j'ajoute un nouveau code article, la date se crée correctement, mais la séquence reprend à 1 malgré le fait que j'ai la même date que la ligne précédente, soit la date d'aujourd'hui.
Merci
@domichou, attention vous avez aussi des dates avec le temps ( par ex 05/01/2023 13:19:27 ) si XL trouve 1 seconde d'écart alors ce sera une nouvelle date, que ce soit en formules ou en VBA.