Re : Generation numero en fonction de la date
Bonjour,
Si on ne veut pas rajouter une colonne séparée, je crois que le secret réside dans la concaténation du numéro précédent.
Voilà ce que je propose:
Sub Incrémenter()
Dim Aujourdhui As String, Jour As String, Mois As String, Annee As String
Dim MonNumero As String
Dim i As Integer, j As Integer, k As Integer
'Je réccupère la date d'aujourd'hui
'pour être sûr d'avoir un numéro au format jjmmaa-nn , je les crée moi même
If Not Len(Day(Now)) = 2 Then
Jour = "0" & Day(Now)
Else
Jour = Day(Now)
End If
If Not Len(Month(Now)) = 2 Then
Mois = "0" & Month(Now)
Else
Mois = Month(Now)
End If
Année = Mid(Year(Now), Len(Year(Now)) - 1, 2)
Aujourdhui = Jour & Mois & Année
'Comparaison avec le N° précédemment incrémenté
'Je réccupère le N° de la ligne où j'ai écris mon dernier numéro
i = 1
While Not IsEmpty(Cells(i, 10))
i = i + 1
Wend
'Initialisation
If i > 1 Then
i = i - 1
End If
'Je regarde si la date de ce numéro et la même que celle d'aujourd'hui
If Mid(Feuil1.Cells(i, 10), 1, 6) = Aujourdhui Then
'Le dernier N° a la même date qu'aujourd'hui, j'incrémente
j = Mid(Feuil1.Cells(i, 10), Len(Feuil1.Cells(i, 10)) - 1, 2)
j = j + 1
Else
'le dernier n° n'a pas la même date qu'aujourd'hui, je cré un nouveau N°
j = 1
End If
'Je crée MonNumero
If j < 10 Then
MonNumero = Aujourdhui & "-0" & j
Else
MonNumero = Aujourdhui & "-" & j
End If
'Je l'écris
If IsEmpty(Cells(1, 10)) Then
Cells(1, 10) = MonNumero
Else
Cells(i + 1, 10) = MonNumero
End If
End Sub
En espérant que ça aidera...