Countifs VBA
maxmen67
Messages postés
58
Statut
Membre
-
f894009 Messages postés 17413 Statut Membre -
f894009 Messages postés 17413 Statut Membre -
Bonjour à tous;
Je cherche actuellement à réaliser un comptage via plusieurs critères listés dans plusieurs colonnes.
En TCD et formule NB.SI le système fonctionne parfaitement, mais dans un souci de stabilité je souhaite le réaliser en VBA...
J'ai déjà tenté quelques codes, mais sans succès...
Pour préciser mon besoin, je souhaite corréler la notation de services, donc les notes sont présentes dans la colonne ''Notes'' et les services dans la colonne "services":

Voici quelques lignes que j'ai déjà essayés, mais sans succès:
Quelqu'un aurait-il une idée pour réaliser cette corrélation ?
En vous remerciant par avance.
Je cherche actuellement à réaliser un comptage via plusieurs critères listés dans plusieurs colonnes.
En TCD et formule NB.SI le système fonctionne parfaitement, mais dans un souci de stabilité je souhaite le réaliser en VBA...
J'ai déjà tenté quelques codes, mais sans succès...
Pour préciser mon besoin, je souhaite corréler la notation de services, donc les notes sont présentes dans la colonne ''Notes'' et les services dans la colonne "services":
Voici quelques lignes que j'ai déjà essayés, mais sans succès:
Sub calcul()
Dim variable1 As Byte
variable1 = range("A1").Value
resultat = variable1
range("B2") = resultat * 2
End Sub
Sub compt()
range("A8").Value = WorksheetFunction.CountIf(range("H1:H50000"), "10")
range("A11").Value = WorksheetFunction.CountIfs(range("H1:H50000"), "9") + WorksheetFunction.CountIfs(range("H1:H50000"), "10")
range("A9").Value = WorksheetFunction.CountIf(range("H1:H50000"), "9")
range("B8").Value = "notes 10"
range("B9").Value = "notes 9"
range("B10").Value = "Somme"
range("A10").Value = WorksheetFunction.Sum(range("A8"), range("A9"))
End Sub
Sub corre()
Dim variablenote As Byte, variablepresta As Integer, variablemois As Byte, variableannee As Byte
variablenote = range("H2:H50000")
variablepresta = range("I2:I50000")
variablemois = range("J2:J50000")
variableannee = range("K2:K50000")
If variablenote = "10" And variablepresta = "Reexpedition Definitive" And variableannee = "2019" Then
range("C15").Value = "1"
End If
End Sub
Quelqu'un aurait-il une idée pour réaliser cette corrélation ?
En vous remerciant par avance.
Configuration: Windows / Firefox 60.0
2 réponses
Bonjour,
Vous pouvez expliquer plus en detail ce que vous voulez…
Les colonnes de votre code ne correspondent pas a celles de votre feuille!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Vous pouvez expliquer plus en detail ce que vous voulez…
Les colonnes de votre code ne correspondent pas a celles de votre feuille!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Merci @f894009 pour votre retour
Ci-dessous un résumé en image pour bien illustrer mon besoin:

Je cherche à faire le lien entre les services et les notes qui leur sont conférées
càd: exemple: service réexpédition => Nombre de notes 10 : 5
Nombre de notes 9 : 6
Je n'ai pas de souci pour mettre en place le compteur pour un seul critère, mais pour deux critères ça devient problématique...
J'ai pensé à la condition If ( note 9) and (service X) then (Count) , mais qu'est ce qui m'affirme qu'il va lire les données par lignes ?
Ci-dessous un résumé en image pour bien illustrer mon besoin:
Je cherche à faire le lien entre les services et les notes qui leur sont conférées
càd: exemple: service réexpédition => Nombre de notes 10 : 5
Nombre de notes 9 : 6
Je n'ai pas de souci pour mettre en place le compteur pour un seul critère, mais pour deux critères ça devient problématique...
J'ai pensé à la condition If ( note 9) and (service X) then (Count) , mais qu'est ce qui m'affirme qu'il va lire les données par lignes ?
Re,
Votre niveau VBA est debutant, moyen, ou ??????
Il faut une liste des services peut se faire avec un filtre sans doublon
Ensuite:
premiere possibilite:
Faire une boucle sur cette liste afin de rechercher les lignes ou se trouve le service
Faire une boucle pour trouver chaque lignes
Incrementer deux compteurs: un pour note 9, un pour note 10
Deuxieme possibilite:
Tout faire avec des filtres et recuperer les compteurs note 9 et note 10 par le nombre de lignes filtrees
Votre niveau VBA est debutant, moyen, ou ??????
Il faut une liste des services peut se faire avec un filtre sans doublon
Ensuite:
premiere possibilite:
Faire une boucle sur cette liste afin de rechercher les lignes ou se trouve le service
Faire une boucle pour trouver chaque lignes
Incrementer deux compteurs: un pour note 9, un pour note 10
Deuxieme possibilite:
Tout faire avec des filtres et recuperer les compteurs note 9 et note 10 par le nombre de lignes filtrees