Je me permet de déranguer le forum dans le but déssayer d'obtenir une amélioration de mon programme vba actuel pour une tableau excel.
Je posede un tableau d'environ 5000 lignes avec des colonnes de données et trois colonnes importantes "résultats".
Ce sont ces dernieres qui vont etre mes données.
Dans ces trois colonnes, j ai referencé en G les noms de mon fournisseur , en H la ville et en I le pays.
Mon tableau ne contient pas de chiffres seulement des mots.
le but de mon programme serait a l aide de données demandées par une USerForm , de denombrer le nombre de fois répetition d un mot , et cela pour chaque mots differents de la colonne , ensuite de créer un tableau et et a partir de ce tableau, d en faire un graphique forme "Camenbert" avec les pourcentages de repetition pour chaque mot different.
le probleme se situe à plusieurs endroits:
- la taille de ma liste va varier.
- les mots recherchés ne sont pas toujours les memes.
- le plus important:
plusieurs mots sont souvent contenu dans la meme case.
Ceci est mon probleme actuel.
A l aide d un code, je reussi a denombrer et compter le nombre fois que la case a la meme valeur.
cependant si j ai , par exemple, dans une case pays ensemble :
FR / AL / ES
il me compte :FR / AL / ES = 1
et non
FR = 1
Al = 1
ES = 1
Voila exactement mon probleme!!!
Je me suis renseigné sur la fonction Countif suivi du "mot".
ce serais un possibilité.
Cependant je ne sais pas comment l inserer dans mon programme actctuelle.
si dessous:
Sub Zählenwenn()
feuille = UserForm2.TextBox1.Value
col = UserForm2.ComboBox1.Value 'variable selectionne la colonne a compter ds feuilles filtrées
'Routine Compter
Do
fin1 = fin1 + 1
If Cells(fin1, col).Value = "" And Cells(fin1 + 1, col).Value = "" And Cells(fin1 + 2, col).Value = "" Then
fin2 = fin1
End If
Loop Until fin2 = fin1
For Each Cellules In Range(Cells(1, col), Cells(fin2, col))
If Cellules.Value <> Empty Then
n = n + 1
End If
Next
ReDim V(n)
j = 0
Sheets(feuille).Select
For i = 1 To n
Sheets(feuille).Select
enregistrement = Cells(i, col).Value
If RechercheSiDeja Then
nombre = 1
For Each Cellules In Range(Cells(i + 1, col), Cells(n + 1, col)) 'inserer une variable pour choix de la colonne a compter.
If Cellules.Value = enregistrement Then
nombre = nombre + 1
End If
Next
j = j + 1
Sheets(feuille & "_Graphik_" & Compteur).Cells(j, 2).Value = enregistrement 'feuille et colonne de destination a changer
Sheets(feuille & "_Graphik_" & Compteur).Cells(j, 3).Value = nombre
V(i) = enregistrement
End If
Next i
Sheets(feuille & "_Graphik_" & Compteur).Select
Je vous remercie d'avance pour votre aide.
et m excuse d or et deja du roman, je souhaitai etre clair.
Souhaitons qu'un esprit avisé et eclairé me viennent en aide.. ;)