Amelioration occurence d un mot avec Countif

Robski Messages postés 2 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 11 août 2010 - 10 août 2010 à 12:50
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 11 août 2010 à 11:16
Bonjour,

Je me permet de déranger le forum dans le but d éssayer dŽobtenir une amélioration de mon programme vba actuel pour une tableau excel.

Je possede 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.. ;)

3 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
10 août 2010 à 15:13
Salut

Quel beau roman il y a happy end à la fin ?

tes pays sont partagés avec des slashes
FR/AL/ES
utilises le split function
Dim mystrings() As String
dim thetext as string
thetext = "FR/AL/ES"
mystrings() = Split(thetext,"/")

mystrings(0) = "FR"
mystrings(1) = "AL"
mystrings(2) = "ES"
LBound(mystrings) = 0
UBound(mystrings) = 2
0
Robski Messages postés 2 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 11 août 2010
11 août 2010 à 10:07
Salut,

A mon avis le happy end tant attendu dépend de la puissance de la fonction Splip dans mon cas.

et justement a ce propos,

ton code essayé tel quel ne marche pas.Erreur de compilation au niveau du Split.
Sais tu pourquoi?

autres questions:
le split va t il marcher si je change les noms des pays?Dans mon tableau intervient une multitude de pays?
Pourrais je avec le split identifier les noms des pays splités et en compter le nombre d occurences?

a quoi sert exactement Lbound et Ubound dans ton code?

Merci d avance pour ta réponse.
#
La vie est comme un grand livre : si on oublie les pages qu'on tourne, on arrive à la fin sans rien avoir compris !
[Nicolas Chambrier]
;)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
11 août 2010 à 11:16
Bonjour
ton code essayé tel quel ne marche pas.Erreur de compilation au niveau du Split.
Sais tu pourquoi?

Non !! mais je voudrais bien le savoir
il faudrait dans ce cas quand tu envoies l'erreur de compilation et le bout de code que tu as écris
0
Rejoignez-nous