Comment compter et numéroter l'apparition d'un mot

Arnault -  
 Arnault -
Bonjour,

Petite question sur excel.

Je voudrai savoir si l'on peut compter et numéroter automatiquement un mot au sein d'une cellule.

Mon exemple :

J'ai le mot Sylvie dans plusieurs de mes cellules.

Je voudrais qu'à sa première apparition (de gauche à droite), il apparaissent en "01 Sylvie", et à sa deuxième apparition en "02 Sylvie", troisième apparition "03 Sylvie", etc...

Est-ce possible ?

Merci par avance !

2 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    Dans la même cellule que le mot pas possible sans macro, mais dans une cellule en dessous c'est possible avec un NB.SI
    Par exemple les chaines de caractères étant dans les cellules A1 à G1, en A2 =SI(A1="Sylvie";NB.SI($A$1:A1;"Sylvie") & " Sylvie";"")

    Cdlmnt
    Via

    "L'imagination est plus importante que le savoir." A. Einstein
    0
    1. Arnault
       
      Merci beaucoup de cette réponse, mais dans mon cas, ce ne sera pas utile.

      en fait, il faudrait vraiment que je puisse numéroter les noms avec comme un préfixe automatique. Car en fait, et pour être précis, je dois pouvoir compter ensuite, le nombre de "Sylvie" qui sont en 01, et toutes les autres.

      ça pourrait se faire via une macro, dites vous ?
      0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Pour permettre aux intervenants de t'aider efficacement, il est souhaitable que tu joignes un fichier à la demande avec une présentation du résultat attendu.

    Précise les points suivants :
    - le comptage devra t-il se faire sur plusieurs identifiants ?
    - le comptage est-il distinct sur chaque ligne ?
    - Quelle est la plage concernée (nombre de lignes et de colonnes) ?
    - etc.

    Pour joindre le fichier, tu peux utiliser https://www.cjoint.com/
    Ensuite, reviens coller ici le lien donné par le site.

    A+
    0
    1. Arnault
       
      Merci beaucoup.

      Voici mon fichier d'exemple :
      http://www.cjoint.com/c/EJAtcnZHzNq


      Pour les précisions :
      - le comptage devra se faire à chaque occurence de chaque mot : à chaque fois qu'apparait un prénom, il faudrait qu'il soit compté et préfixé de son numéro de comptage
      - le comptage doit donc avoir lieu sur tout le tableau

      En fait, par rapport à mon fichier d'exemple, je voudrai que la première fois ou apparaît "Sylvie", elle se préfixe automatiquement de "01" pour donner "01 Sylvie", la deuxième fois ou elle apparaît, elle se préfixe de 02, etc...

      Comme je l'ai fait manuellement dans la partie du dessous de mon exemple.

      merci beaucoup !
      0
    2. Arnault > Gyrus Messages postés 3360 Statut Membre
       
      Merci beaucoup !

      mais n'y connaissant rien en macros, quand j'ouvre le fichier j'ai le message d'erreur suivant :
      http://www.cjoint.com/c/EJAtPZkRdVq
      0
    3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > Arnault
       
      Re

      Macro à mettre dans un module (ALT+F11 pour ouvrir Editeur VBA - Insertion - Module - copier-coller macro dans la page)
      Sub comptab()
      'première ligne du tableau
      ligneD = 3 'A MODIFIER en fonction du tableau réel
      ' dernière ligne du tableau
      ligneF = 6 'A MODIFIER en fonction du tableau réel
      '1ere colonne du tableau
      colD = 2 'A MODIFIER en fonction du tableau réel
      'dernière colonne du tableau
      ColF = 5 'A MODIFIER en fonction du tableau réel
      'Boucle sur les colonnes et les lignes
      For c = colD To ColF
      For l = ligneD To ligneF
      ' nom dans la cellule
      nom = Cells(l, c).Value
      ' si n'est pas vide
      If nom <> "" Then
      ' compte le nombre de cellules contenant ce nom depuis la 1ere du tableau jusqu'à la cellule en cours
      num = Application.WorksheetFunction.CountIf(Range(Cells(ligneD, colD), Cells(l, c)), "*" & nom)
      ' mise d'un 0 devant les nombres d'un chiffre pour former le préfixe sinon prefixe= nombre trouvé
      If num < 10 Then pref = "0" & num Else pref = num
      ' remplacement valeur dans cellule par concaténation préfixe et nom
      Cells(l, c) = pref & " " & nom
      End If
      Next
      Next
      End Sub


      Dans la page pour lancer la macro : Onglet Developpeur - Macros - sélectionner comptab puis Executer

      Cdlmnt
      Via
      0
    4. Gyrus Messages postés 3360 Statut Membre 526 > Arnault
       
      Le code proposé utilise un dictionnaire
      L'objet dictionnaire fait partie de la bibliothèque Microsoft Scripting Runtime.
      Il faut donc que cette bibliothèque soit référencée dans le projet.
      Or, sur un Mac, cette bibliothèque n'existe pas.

      Le code de via55 (que je salue) devrait te convenir.

      A+
      0