Countifs VBA

Fermé
maxmen67 Messages postés 56 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 juillet 2019 - Modifié le 17 juil. 2019 à 09:17
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 - 18 juil. 2019 à 16:35
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:

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

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
18 juil. 2019 à 09:24
Bonjour,

Vous pouvez expliquer plus en detail ce que vous voulez…
Les colonnes de votre code ne correspondent pas a celles de votre feuille!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1
maxmen67 Messages postés 56 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 juillet 2019 1
Modifié le 18 juil. 2019 à 10:08
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 ?
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
Modifié le 18 juil. 2019 à 16:45
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
0