Compter et identifier chaques éléments d'une colonne

Bonjour,

J'ai une colonne couleur avec trois possibilitées (bleu, vert, rouge). A coté de cette colonne j'aimerai pouvoir compter les éléments et les indexer sous la forme B001 pour le premier élément bleu rencontré, V012 pour le douzieme élément vert rencontré et ainsi de suite.
Quelqu'un a-t-il une idée pour coder ceci?

Merci d'avance

6 réponses

  1. Pour info, mon idée de départ est de créer un compteur intermédiaire pour chaque élément et de l'incrémenter.
    Un truc dans ce genre:
    i=3, v=0, r=0, b=0
    Si Ci = Vert Then v=v+1
    Si Ci = Rouge Then r=r+1
    Si Ci = Bleu Then b=b+1
    i=i+1
    0
    1. Contributeur
      Bonjour,

      Toujours mettre un fichier de travail.
      On ne sait pas si c'est le mot "bleu"?
      Une couleur mise manuellement ? par MFC ? Le texte ? le fond ? Les plages concernées ? Etc
      cjoint.com et coller ici le lien fourni.
      eric
      0
      1. http://cjoint.com/?3Cfq7yBbbC5

        c'est un fichier dans lequel je rentre la date de réception d'une pièce ainsi que sa couleur et je veux généré automatiquement en fonction de la couleur un code unique pour cette pièce
        0
    2. Bonjour à tous les deux

      essaies ceci
      D5=SI(C5="bleu";"B" & TEXTE(NB.SI($C$4:C5;"bleu");"000");SI(C5="vert";"V" & TEXTE(NB.SI($C$4:C5;"vert");"000");SI(C5="rouge";"R" & TEXTE(NB.SI($C$4:C5;"rouge");"000"))))
      à tirer vers le bas

      Cdlmnt
      1
      1. Merci pour ta formule, elle marche très bien, j'ai réussi à le faire assez facilement sous forme de formule, mon problème c'est que je dois le développer sous forme de macro et comme je ne suis pas a l'aise avec le VBA j'ai du mal. En gros si t'arrives à trouver un truc similaire mais en VBA c'est super
        0
    3. mon problème c'est que je dois le développer sous forme de macro et comme je ne suis pas a l'aise avec le VBA j'ai du mal.
      Est ce que tu veux
      1. une fonction à utiliser dans la feuille, quelque chose du genre
      D5 = MAJCompteur(C5)
      2. une procédure à exécuter une seule fois pour mettre à jour
      - soit toute la colonne C en un coup
      - soit compléter la cellule Dxx dès que la cellule Cxx est remplie
      0
      1. Je cherche une procédure permettant de compléter la cellule Dxx dès que la cellule Cxx est remplie puisque mon tableau n'est pas finis et que je rajoute des lignes
        0
    4. Bonjour
      Voila un macro
      a toi de modifier comme tu veux
      Sub Couleur()
      V = 0
      R = 0
      B = 0
         For L = 5 To Range("B" & Rows.Count).End(xlUp).Row
            Select Case UCase(Cells(L, 3).Value)
               Case "VERT"
                  V = V + 1
                  Cells(L, 4).Value = "V" & Format(V, "000")
               Case "ROUGE"
                  R = R + 1
                  Cells(L, 4).Value = "R" & Format(R, "000")
               Case "BLEU"
                  B = B + 1
                  Cells(L, 4).Value = "B" & Format(B, "000")
            End Select
         Next
      End Sub
      

      A+
      Maurice
      0
      1. ça a l'air pas mal, je vais travailler dessus, merci de ton aide
        0
    5. A mettre dans le module de la feuille à traiter
      Modifier les valeurs des constrantes selon ta config

      Const cocoul = "C"
      Const cocode = "D"
      Const lideb = 5
      
      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim plage As Range, li As Long, coul As String, nbcoul As Long, F As String
      If Not Intersect(Target, Columns(cocoul)) Is Nothing Then
        li = Target.Row
        Set plage = Range(cocoul & lideb & ":" & cocoul & li - 1)
        coul = Target.Value
        F = UCase(Left(coul, 1))
        nbcoul = Application.WorksheetFunction.CountIf(plage, coul)
        Range(cocode & li).Value = F & Format(nbcoul + 1, "000")
      End If
      End Sub

      Cdlmnt
      0
      1. J'ai oublié de préciser que la maj de Cxx entrainera celle de Dxx

        Salutations à Maurice au passage
        0
      2. Merci, je vais essayer de voir si j'y arrive en me servant de ça. Encore merci pour ton aide
        0
      3. @ccm81Bonsoir ccmB1
        a toi aussi
        bon moi je ferme dodo
        A+
        0