modifier doublons dans une colonne

Le
didou44
Bonjour,
Dans un tableau, j"ai une colonne qui contient la liste des numeros des concurrents participant à une course. Bien sûr des doublons existent, mais je ne souhaite pas les supprimer mais les modifier logiquement. (les n° peuvent contenir de 1 à 3 chiffres)
ex:
12 le premier "12" rencontré reste "12"
56
89 le premier "89" rencontré reste "89"
121
6 le premier "6" rencontré reste 6
78
12 le 2ème "12" rencontré devient 121
89 le 2ème "89" rencontré devient 891
56
12 le 3ème "12" rencontré devient 123
47
6 le 2ème "6" devient 61 etc.
Attention les doublons ainsi modifiés ne doivent pas "doublonner" avec les autres non modifiés.
En vba je sais deja reperer les doublons, mais je coince lorsqu'il y a plusieurs doublons.
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LE TROLL
Le #18533511
Bonjour,

Je ne pense pas que ce soit bon de faire ainsi, car si tu as ensuite
besoin de faire un classement, ça ne pourras pas se faire, en effet ça va
donner par exemple :

23, 23, 50 = 23, 50, 231...

Alors ce que tu peux faire, s'il y a moins de 27 doublons pour une même
valeur, c'est rajouter une lettre :

23, 23, 50 = 23a, 23b, 50a
ça reste dans l'ordre...
-
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"didou44" news:
Bonjour,
Dans un tableau, j"ai une colonne qui contient la liste des numeros des
concurrents participant à une course. Bien sûr des doublons existent, mais
je ne
souhaite pas les supprimer mais les modifier logiquement. (les n° peuvent
contenir de 1 à 3 chiffres)
ex:
12 le premier "12" rencontré reste "12"
56
89 le premier "89" rencontré reste "89"
121
6 le premier "6" rencontré reste 6
78
12 le 2ème "12" rencontré devient 121
89 le 2ème "89" rencontré devient 891
56
12 le 3ème "12" rencontré devient 123
47
6 le 2ème "6" devient 61 etc....
Attention les doublons ainsi modifiés ne doivent pas "doublonner" avec les
autres non modifiés.
En vba je sais deja reperer les doublons, mais je coince lorsqu'il y a
plusieurs doublons.
Merci


FFO
Le #18533771
Salut à toi

Soit la colonne A les numéros à traiter à partir de la 2° ligne

Je te propose ce code :

i = 2
Do While i < Range("A65535").End(xlUp).Offset(1, 0).Row
If Liste Like "*/" & Range("A" & i) & "/*" Then
For j = 1 To 100
If Liste Like "*/" & Range("A" & i) & j & "/*" = False Then
Liste = Liste & "/" & Range("A" & i) & j & "/"
Range("A" & i) = Range("A" & i) & j
Exit For
End If
Next
Else
Liste = Liste & "/" & Range("A" & i) & "/"
End If
i = i + 1
Loop

Celà devrait convenir

Fais des essais et dis moi !!!!
didou44
Le #18536311
LE TROLL a écrit le 30/01/2009 à 16h54 :
Bonjour,

Je ne pense pas que ce soit bon de faire ainsi, car si tu as ensuite
besoin de faire un classement, ça ne pourras pas se faire, en effet
ça va
donner par exemple :

23, 23, 50 = 23, 50, 231...

Alors ce que tu peux faire, s'il y a moins de 27 doublons pour une même
valeur, c'est rajouter une lettre :

23, 23, 50 = 23a, 23b, 50a
ça reste dans l'ordre...
-
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"didou44" a écrit dans
le message de
news:
Bonjour,
Dans un tableau, j"ai une colonne qui contient la liste des numeros des
concurrents participant à une course. Bien sûr des doublons
existent, mais
je ne
souhaite pas les supprimer mais les modifier logiquement. (les n° peuvent
contenir de 1 à 3 chiffres)
ex:
12 le premier "12" rencontré reste "12"
56
89 le premier "89" rencontré reste "89"
121
6 le premier "6" rencontré reste 6
78
12 le 2ème "12" rencontré devient 121
89 le 2ème "89" rencontré devient 891
56
12 le 3ème "12" rencontré devient 123
47
6 le 2ème "6" devient 61 etc....
Attention les doublons ainsi modifiés ne doivent pas
"doublonner" avec les
autres non modifiés.
En vba je sais deja reperer les doublons, mais je coince lorsqu'il y a
plusieurs doublons.
Merci





Merci pour ta reponse
Le raisonnement est censé, mais une fois traités (les doublons) cette liste est importée dans un logiciel de chronometrage qui n'accepte que les chiffres ( de 1 a 3 chiffres).
Cordialement
didou44
Le #18536501
FFO a écrit le 30/01/2009 à 17h11 :
Salut à toi

Soit la colonne A les numéros à traiter à partir de la
2° ligne

Je te propose ce code :

i = 2
Do While i < Range("A65535").End(xlUp).Offset(1, 0).Row
If Liste Like "*/" & Range("A" & i) &
"/*" Then
For j = 1 To 100
If Liste Like "*/" & Range("A" & i) & j &
"/*" = False Then
Liste = Liste & "/" & Range("A" & i) & j
& "/"
Range("A" & i) = Range("A" & i) & j
Exit For
End If
Next
Else
Liste = Liste & "/" & Range("A" & i) &
"/"
End If
i = i + 1
Loop

Celà devrait convenir

Fais des essais et dis moi !!!!


Bonjour,
Je ne sais que dire : cela repond parfaitement à mon problème, un grand merci.
Avant d'appeler " au secours", j'ai galeré plusieurs jours.
Toutefois, une question : pourquoi a partir de la ligne 2 seulement, y a-t-il moyen de partir de la ligne 1?
Merci,
Cordialement
Publicité
Poster une réponse
Anonyme