La fonction CountIf() VBA
Fermé
Tempio
-
21 avril 2011 à 12:25
Tempio Messages postés 1 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 21 avril 2011 - 21 avril 2011 à 17:13
Tempio Messages postés 1 Date d'inscription jeudi 21 avril 2011 Statut Membre Dernière intervention 21 avril 2011 - 21 avril 2011 à 17:13
Bonjour,
J'ai un problème pour utiliser la fonction CountIf(). En fait j'aimerais pouvoir compter le nombre de personnes appartenant à une entité (service) : par exemple "DG / CA /MED". Comme vous voyez ma chaine de caractère contient des espaces. Mais lorsque j'utilise la fonction CountIf() ca se passe bien jusqu'ici :
For Each z1 In zone1
Application.CountIf(z1.Offset(0, 23), "*DG" & "*") then x1 = x1 + 1
Next z1
Mais mon problème est que j'ai aussi des entités comme : "DGA / DT / TP" par exemple et donc ma fonction me compte également ces personnes alors que "DG" est différent de "DGA". S'il vous plait, comment puis je faire la différence entre les deux ? Merci d'avance.
J'ai un problème pour utiliser la fonction CountIf(). En fait j'aimerais pouvoir compter le nombre de personnes appartenant à une entité (service) : par exemple "DG / CA /MED". Comme vous voyez ma chaine de caractère contient des espaces. Mais lorsque j'utilise la fonction CountIf() ca se passe bien jusqu'ici :
For Each z1 In zone1
Application.CountIf(z1.Offset(0, 23), "*DG" & "*") then x1 = x1 + 1
Next z1
Mais mon problème est que j'ai aussi des entités comme : "DGA / DT / TP" par exemple et donc ma fonction me compte également ces personnes alors que "DG" est différent de "DGA". S'il vous plait, comment puis je faire la différence entre les deux ? Merci d'avance.
A voir également:
- La fonction CountIf() VBA
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction miroir - Guide
- Excel compter cellule couleur sans vba - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
1 réponse
ccm81
Messages postés
10908
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 mai 2025
2 430
Modifié par ccm81 le 21/04/2011 à 16:58
Modifié par ccm81 le 21/04/2011 à 16:58
bonjour
en supposant que le caractere qui suit la cle (DG) n'est pas une lettre majuscule quelque chose comme ça
bonne suite
en supposant que le caractere qui suit la cle (DG) n'est pas une lettre majuscule quelque chose comme ça
x1 = 0 lcle = Len(cle) For Each z1 In zone1 rangdep = InStr(1, z1.Value, cle) If rangdep > 0 Then If Mid(z1.Value, rangdep, lcle) = cle And (Asc(Mid(z1.Value, rangdep + lcle, 1)) < 65 Or Asc(Mid(z1.Value, rangdep + lcle, 1)) > 92) Then x1 = x1 + 1 End If End If Next z1
bonne suite
21 avril 2011 à 17:13