Incrémenter des doublons sur Excel

Résolu
cybergui Messages postés 5 Statut Membre -  
cybergui Messages postés 5 Statut Membre -
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 !

6 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      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
  3. cybergui Messages postés 5 Statut Membre 1
     
    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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. cybergui Messages postés 5 Statut Membre 1
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. cybergui Messages postés 5 Statut Membre 1
       
      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
  7. cybergui Messages postés 5 Statut Membre 1
     
    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