Compter et identifier chaques éléments d'une colonne
Bstn
-
Maurice -
Maurice -
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
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:
- Compter et identifier chaques éléments d'une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
- Identifier appareil avec adresse mac - Guide
6 réponses
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
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
Bstn
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
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
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
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
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
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
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
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
A+
Maurice
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
A mettre dans le module de la feuille à traiter
Modifier les valeurs des constrantes selon ta config
Cdlmnt
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