Incrémenter des doublons sur Excel

Résolu/Fermé
cybergui Messages postés 5 Date d'inscription dimanche 25 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 - 25 sept. 2011 à 02:18
cybergui Messages postés 5 Date d'inscription dimanche 25 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 - 28 sept. 2011 à 08:28
Bonjour,
Je suis sur excel 2003.
Je suis en train de créer des login pour des personnes afin qu'elles puissent se connecter à un domaine. Pour créer ce login je colle les 3 premières lettres du nom et du prénom (ex: "DUPONT Catie" donne "dupcat").
Le problème, c'est que sur plusieurs milliers de login, j'ai des doublons, parfois 3 ou 4 occurrences identiques.
Je voudrais dans un premier temps que chacun des doublons trouvés soient automatiquement incrémenté d'un chiffre 1,2,3, etc. (Ex: "DUPONT Catie" donne "dupcat1" et "DUPRES Catherine" donne "dupcat2", etc.)
Je voudrais dans un deuxième temps que cette macro s'applique sur une colonne et que les modifications soient écrit dans une autre colonne.
Piouf, j'ai eu beau chercher je n'ai rien trouvé sur la toile....
Donc un grand merci d'avance !
A voir également:

6 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
25 sept. 2011 à 08:28
Bonjour

Problème classique; proposition sans macro

tes noms prénoms en colonne A et B

en colonne C ( à masquer)
=GAUCHE(A2;3)&GAUCHE(B2;3)
en colonne D
=SI(NB.SI(C$2:C$28;C2)>1;C2&NB.SI(C$2:C2;C2);C2)

formules à tirer vers le bas

maintenant pour des milliers de login, on pourrait passer par VBA (bof!): la méthode est la m^me que par formule + boucle et variable-tableau pour la rapidité;si ca t'intéresse, je reviens en fin de journée (rando) mais un forumeur devrait pouvoir te répondre avant mon retour!
1
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 25/09/2011 à 10:08
Bonjour le fil,

Je pense qu'il est possible d'obtenir directement le résultat, à partir de A2 saisir nom et prénom
DUPONT Catie etc ...

en B2 coller cette formule et incrémenter vers le bas

=GAUCHE(A2;3)&SUBSTITUE(STXT(A2;CHERCHE(" ";A2)+1;3);;)&NB.SI($A$2:A2;A2)

et si on souhaite numéroter à partir du premier doublon

=GAUCHE(A2;3)&SUBSTITUE(STXT(A2;CHERCHE(" ";A2)+1;3);;)&SI(NB.SI($A$2:A2;A2)-1=0;"";NB.SI($A$2:A2;A2)-1)

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
Modifié par Mytå le 26/09/2011 à 02:38
Salut le forum

Mike, je ne crois pas que NB.SI($A$2:A2;A2) retrouve les doublons
de DUPcat dans la colonne de noms. ("DUPONT Catie", "DUPRES Catherine")

Première référence trouvée sera égale à 1
=GAUCHE(A2;3)&SUBSTITUE(STXT(A2;CHERCHE(" ";A2)+1;3);;)&NB.SI($B$1:B1;GAUCHE(A2;3)&SUBSTITUE(STXT(A2;CHERCHE(" ";A2)+1;3)&"*";;))+1

Pour avoir un code à deux chiifres
=GAUCHE(A2;3)&SUBSTITUE(STXT(A2;CHERCHE(" ";A2)+1;3);;)&TEXTE(NB.SI($B$1:B1;GAUCHE(A2;3)&SUBSTITUE(STXT(A2;CHERCHE(" ";A2)+1;3)&"*";;))+1;"00")

Pour éliminer les majuscules
=MINUSCULE(GAUCHE(A4;3)&SUBSTITUE(STXT(A4;CHERCHE(" ";A4)+1;3);;)&TEXTE(NB.SI($B$1:B3;GAUCHE(A4;3)&SUBSTITUE(STXT(A4;CHERCHE(" ";A4)+1;3)&"*";;))+1;"00"))

Mytå
0
cybergui Messages postés 5 Date d'inscription dimanche 25 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 1
26 sept. 2011 à 10:51
Bonjour,
d'abord un grand merci à tous, je ne m'attendais pas a autant d'engouement pour mon problème, c'est super. Il faut que je fasse des essais. Je vous tiens au courant.
A++
1
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 27/09/2011 à 09:09
Salut,

tu peux tout faire simplement sans passer par le VBA, dans mon exemple en A tu saisis le nom et prénom une formule recompose le nom et prénom en conservant que les trois premières lettres de chacun
et une mis en forme conditionnelle pour coloriser uniquement les doublons. si tu souhaites que les tous les mots en doublon se colorisent, la formule est plus simple
=NB.SI($A$2:$A$20;A2)>1

https://www.cjoint.com/?AIBi5lyG472
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
27 sept. 2011 à 10:04
Bonjour,

Je ne comprends pas trop ta démarche

dans ton classeur, tu as une macro** qui t'incrémente les doublons et il suffirait alors d'affecter les couleurs sans avoir à réécrire une macro

**:peut-^tre des petites modifs pour quelle respecte ta disposition

tu dis
1
cybergui Messages postés 5 Date d'inscription dimanche 25 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 1
27 sept. 2011 à 23:47
Bonjour Michel_m,
j'ai une macro qui colorie tous les doublons mais avec une seule couleur sans les incrémenter. Moi je voudrais que cela les incrémente et que les couleurs soient différentes pour chaque groupe de login identiques (ex: tous les "DUPONT1", "DUPONT2", "DUPONT3", etc. en bleu, les "DUPRES1", "DUPRES2", etc. en rouge)
je ne suis pas sûr d'avoir été plus clair, lol
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
28 sept. 2011 à 08:04
bonjour,

Oui j'avais compris, merci, mais tu as une autre macro qui incrémente les doublons et on devrait pouvoir l'utiliser pour colorier les "familles" de doublons. Mais apparemment, cette macro (l'autre!!)ne te convient pas car, sinon, tu n'aurais pas poser ta question ?...

donc, tu sors de ton obsession de ta macro-couleur et tu essaies de répondre à ma question-remarque, sinon, j'abandonne le suivi
0
cybergui Messages postés 5 Date d'inscription dimanche 25 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 1
28 sept. 2011 à 08:28
Désolé Michel_m si mon ignorance vous a vexé. Vous avez déjà fait tant pour moi, je ne voudrais pas abuser de votre temps. Je vais me débrouiller avec tout ce que vous m'avez déjà apporté. Le reste c'est du perfectionnisme....
Bonne continuation
0
cybergui Messages postés 5 Date d'inscription dimanche 25 septembre 2011 Statut Membre Dernière intervention 28 septembre 2011 1
27 sept. 2011 à 02:11
Bonjour,
J'ai testé votre solution Michel_m et elle me satisfait.
A vrai dire vu que je ne suis pas très doué, je n'ai pas réussi à adapter les autres solutions à mon tableau excel :-/

Je rajouterais une contrainte supplémentaire, je m'explique:
j'ai une macro qui colorie les cases des doublons détectés. Cependant elle n'est pas très pratique puisqu'il faut la lancer manuellement et ensuite choisir une plage d'application. De plus, tous les doublons se colorient en vert au lieu de mettre une couleur par groupe de doublons.

Serait-il possible qu'en plus d'incrémenter les doublons, leurs cases soient soient colorées de différent couleur (ex: tous les "DUPONT1", "DUPONT2", "DUPONT3", etc. en bleu, les "DUPRES1", "DUPRES2", etc. en rouge) et ne pas avoir à rentrer manuellement la plage?

Voici la macro:

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng As Range

On Error Resume Next
Set Plage = Application.InputBox("Plage à examiner", Type:=8)
If IsEmpty(Plage) Then Exit Sub

Application.ScreenUpdating = False

For Each Cell In Plage
For i = 1 To Plage.Count
Set Rng = Cell.Offset(i)
If Rng <> "" And Rng = Cell Then
Cell.Interior.ColorIndex = 43
Rng.Interior.ColorIndex = 43
Exit For
End If
Next i
Next Cell

End Sub



Je vous joint ci-dessous une partie de mon fichier excel, j'ai enlever une grande partie de mes colonnes et le nom et le prénom des utilisateurs pour une question de confidentialité...

https://www.cjoint.com/?AIBchF9W2Qd

Merci par avance
0