Count if qui renvoie n'importe quoi

Résolu
melinette35 Messages postés 68 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 27 juillet 2012 - 12 juil. 2012 à 08:26
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 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?

Je vous remercie beaucoup de votre aide.

45 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
melinette35 Messages postés 68 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 27 juillet 2012
13 juil. 2012 à 10:24
J'ai une tite question quand même du coup:

pourquoi des baines de caractères peuvent marchées avec le .value ???

Il sert à quoi le .text alors?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
Rejoignez-nous