Problème de génération de codes uniques avec exception
BL
-
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon problème :
Je cherche à créer une macro qui génère des codes de la forme "OM-xxxx" sur la colonne 19 de mon tableau. Chaque code doit être unique sauf dans le cas où ce code a déjà été attribué sur une autre ligne dont le contenu textuel de la cellule colonne 7 est le même que celui dont on cherche à générer le code.
Je ne sais pas si c'est bien clair mais voici la macro que j'ai créé :
Le problème de ma macro est qu'elle ne prend pas en compte l'exception à l'unicité du code.
J'ai longuement réfléchi à ce problème et ai cherché des possibles erreurs de syntaxe sur internet mais je n'ai rien trouvé.
Est-ce que quelqu'un pourrait m'éclairer sur ce problème ?
Je vous remercie d'avance.
Voici mon problème :
Je cherche à créer une macro qui génère des codes de la forme "OM-xxxx" sur la colonne 19 de mon tableau. Chaque code doit être unique sauf dans le cas où ce code a déjà été attribué sur une autre ligne dont le contenu textuel de la cellule colonne 7 est le même que celui dont on cherche à générer le code.
Je ne sais pas si c'est bien clair mais voici la macro que j'ai créé :
C = 1 For L = 1 To Range("A" & Rows.Count).End(xlUp).Row If Cells(L, 19).Value = "" Then For Ligne = 1 To Range("A" & Rows.Count).End(xlUp).Row If Cells(Ligne, 19).Value = "OM-" & Format(C, "0000") Then If Cells(Ligne, 7).Value = Cells(L, 7).Value And Ligne <> L Then Exit For Else C = C + 1 End If End If Next Ligne Cells(L, 19).Value = "OM-" & Format(C, "0000") C = C + 1 End If Next L
Le problème de ma macro est qu'elle ne prend pas en compte l'exception à l'unicité du code.
J'ai longuement réfléchi à ce problème et ai cherché des possibles erreurs de syntaxe sur internet mais je n'ai rien trouvé.
Est-ce que quelqu'un pourrait m'éclairer sur ce problème ?
Je vous remercie d'avance.
A voir également:
- Problème de génération de codes uniques avec exception
- Les codes ascii - Guide
- Code de déverrouillage oublié - Guide
- Generateur de mot de passe - Télécharger - Sécurité
- Generation ryzen - Guide
- Réinitialiser chromecast 1ere génération - Guide
1 réponse
Bonjour BL, bonjour le forum,
Peut-être comme ça (non testé) :
Si tu nous fournissais un petit fichier exemple on pourrais tester avant de te proposer une solution...
Peut-être comme ça (non testé) :
Sub Macro1() Dim C As Integer Dim R As Range C = 1 For L = 1 To Range("A" & Rows.Count).End(xlUp).Row If Cells(L, 19).Value = "" Then If Cells(L, 7) <> "" Then Set R = Columns(7).Find(Cells(L, 7).Value, , xlValues, xlWhole) If Not R Is Nothing And R.Row <> L Then Cells(L, 19).Value = Cells(R.Row, 19).Value If R Is Nothing Then Cells(Ligne, 19).Value = "OM-" & Format(C, "0000") C = C + 1 End If End If Next L Range("A1").Select End Sub
Si tu nous fournissais un petit fichier exemple on pourrais tester avant de te proposer une solution...