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

Fermé
Bstn - Modifié par Bstn le 5/03/2015 à 15:56
 Maurice - 5 mars 2015 à 21:37
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
A voir également:

6 réponses

ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
Modifié par ccm81 le 5/03/2015 à 17:34
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
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
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
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
5 mars 2015 à 16:37
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
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
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
Modifié par ccm81 le 5/03/2015 à 21:09
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
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

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

Posez votre question
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
ça a l'air pas mal, je vais travailler dessus, merci de ton aide
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
5 mars 2015 à 21:25
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
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
5 mars 2015 à 21:32
J'ai oublié de préciser que la maj de Cxx entrainera celle de Dxx

Salutations à Maurice au passage
0
Maurice > ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024
5 mars 2015 à 21:37
Bonsoir ccmB1
a toi aussi
bon moi je ferme dodo
A+
0
Merci, je vais essayer de voir si j'y arrive en me servant de ça. Encore merci pour ton aide
0