re
Bonjour
mis a part le fait que je rejois patrice sur ce coup la j'avoue que la question est le contexte me laisse perplexe
Le numéro unique généré change à chaque nouvelle entrée d'un nouveau produit, ce qui rend mon numéro d'identification complètement obsolète.
J'aimerai trouver une macro qui me permette de figer le numéro aléatoire généré par excel.
qu il y a til de difficile dans une incrementation de numero de serie basé par exemple sur la date et un index
par exemple dans une boucle
1 2 3 4 5 6
| Sub test()
For i = 1 To 1000
numserie = Format(Date, "yymd") & Format(i, "00")
Cells(i, 1) = numserie
Next
End Sub |
ou bien encore en ajout unique en se servant de l'index de ligne de la premiere cellule vide dispo
1 2 3 4 5 6
| Sub ajoute()
With Cells(Rows.Count, 1).End(xlUp).Offset(1)
numserie = Format(Date, "yymmdd") & Format(.Row, "00")
.Value = numserie
End With
End Sub |
ou bien encore créer des code serie avec des lettres et des chiffres
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Const carrote = "CtS"
Const poireau = "PX"
Const tomate = "TtE"
'
Sub testx1()
'ajoute une carrote
ajoute carrote
End Sub
'
Sub testx2()
'ajoute poireau
ajoute poireau
End Sub
'
Sub testx3()
'ajoute tomate
ajoute tomate
End Sub
'
Function ajoute(produit)
Dim N As String
With Cells(Rows.Count, 1).End(xlUp).Offset(1)
N = produit & Format(Date, " yymmdd") & Format(.Row, "00")
.Value = N
End With
End Function |
tu peux meme séparer les données du code de serie
N = produit & Format(Date, " yymmdd-") & Format(.Row, "00")
ainsi tu a le code lettre du produit (les constantes) la date facilement identifiable et le numero de fabrication du jour de la date apres le tiret
bref solution il y a 
en gros l'incrémentation se fait automatiquement en fonction de l'index de ligne de la premiere cellules vide dispo
c'est quoi le soucis ?
Partager