melinette35
Messages postés68Date d'inscriptionmercredi 23 mai 2012StatutMembreDernière intervention27 juillet 2012
-
12 juil. 2012 à 08:26
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
13 juil. 2012 à 11:22
Bonjour à tous !
Une nouvelle fois confrontée à un petit souci, je me tourne vers vous.
Je souhaite compter le nombre d'occurences d'une chaîne de caractère, pour chaque ligne de la colonne 13.
L'objectif est à terme: surligner les lignes dont le nombre d'occurences est supérieur à 2.
Afin de facilité le visuel de ma macro j'ai déjà trié les chaines par ordre croissant pour voir le nombre d'occurence de façon "manuelle".
voici donc le code de ma macro:
Sub CompteOccurence()
Dim Z As Integer
Dim Nom As String
Dim Nom1 As String
Dim M As Integer 'variable qui stockera le décompte
Dim MaPlage As Range
For Each Wb In Application.Workbooks
Nom = Wb.Name
If Left(Nom, 7) = "Espèces" Then
Nom1 = Nom
Exit For
Else
End If
Next
Dim x As Byte, valeur As String
Z = Workbooks(Nom1).Worksheets("Feuil1").Range("M2").End(xlDown).Row
Set MaPlage = Worksheets("Feuil1").Range(Cells(2, 13), Cells(Z, 13))
For A = 2 To Z
valeur = Cells(A, 13).Value
x = Application.CountIf(MaPlage, valeur)
Next A
End Sub
Mon poblème a priori est le count if qui me renvoit a peu près n'importe quoi. Par exemple pour (M,2) il renvoit qu'il y a 6 occurences dans ma plage, ce qui est faux car il y a en 2 (ctrl F et grâce à mon tri je vois bien que yen a que deux).
Pour (M,3) il me renvoit 6 aussi, alors que la valeur est la même qu'en (M,3) soit 2.
Pouvez vous m'indiquer quelle est mon erreur avec le count if, ou sinon m'inquider une méthode alternative?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 13 juil. 2012 à 10:04
Elle est maintenant très simple :
1) faire le même travail sur la colonne 13 (colonne M, donc)
puis
2) utiliser ensuite tout simplement le code que j'ai montré dans mon message du jeudi 12 juillet 2012 à 13:55:29
Et me dire si encore problème.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 13 juil. 2012 à 10:22
Content pour toi, Melinette.
You're the best !
Non, pas le meilleur ! simplement le plus têtu
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 13 juil. 2012 à 11:15
Au fait : J'ai formaté avec des "-". Rien n'empêche, si tu le préfères, de formater avec des espaces, maintenant, puisque nous restons en texte pur ===>>
c.Value = Format(c.Value, "@@ @@@ @@@ @@@ @@@ @@@ @@@"
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 13 juil. 2012 à 11:22
Autre chose.
Je pense que tu as maintenant compris ce qu'étaient les propriétés Value et Text.
Il faut que tu saches qu'existe également la propriété Value2. Tu pourras trouver intéressant (bien que non utile dans le cas présent), de lire dans ton aide VBA ce qu'elle est, ce qu'elle retourne ... et donc ce à quoi elle peut servir dans certaines circonstances. Elle pourra t'être un jour utile.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ