Compter le nombre d'occurence dans une colonne

Résolu
Remi2236 Messages postés 86 Date d'inscription jeudi 10 septembre 2015 Statut Membre Dernière intervention 22 mai 2024 - 22 mai 2024 à 09:48
Remi2236 Messages postés 86 Date d'inscription jeudi 10 septembre 2015 Statut Membre Dernière intervention 22 mai 2024 - 22 mai 2024 à 12:01

Bonjour,

Je suis novice en VBA et je souhaiterais de l'aide pour une fonction que je n'arrive pas à écrire.

Je souhaiterais pouvoir, en cliquant sur un bouton, que cela m'affiche un MsgBox avec le nombre de vaccins à réaliser. Pour chaque personne que je suis, j'ai plusieurs vaccins que je rentre dans une cellule. Je veux que pour chaque vaccin, cela me note le nombre total de vaccins à réaliser par type. J'ai écris ça :

Private Sub CommandButton1_Click()
Dim Nb_DTCaP As Integer
Dim Nb_Méningites As Integer
Dim Nb_Fièvre_typhoïde As Integer
Dim Nb_Encéphalites_à_tiques As Integer
Dim Nb_Grippes_saisonnières As Integer
Dim Nb_Fièvre_jaune As Integer
Dim Nb_Hépatite_virale_A As Integer
Dim Nb_Hépatite_virale_B As Integer
Dim Nb_COVID_19 As Integer
Dim Nb_ROR As Integer

Nb_DTCaP = WorksheetFunction.CountIf(Range("O:O"), "DTCaP")
Nb_Méningites = WorksheetFunction.CountIf(Range("O:O"), "Méningites")
Nb_Fièvre_typhoïde = WorksheetFunction.CountIf(Range("O:O"), "Fièvre typhoïde")
Nb_Encéphalites_à_tiques = WorksheetFunction.CountIf(Range("O:O"), "Encéphalites à tiques")
Nb_Grippes_saisonnières = WorksheetFunction.CountIf(Range("O:O"), "Grippes saisonnières")
Nb_Fièvre_jaune = WorksheetFunction.CountIf(Range("O:O"), "Fièvre jaune")
Nb_Hépatite_virale_A = WorksheetFunction.CountIf(Range("O:O"), "Hépatite virale A")
Nb_Hépatite_virale_B = WorksheetFunction.CountIf(Range("O:O"), "Hépatite virale B")
Nb_COVID_19 = WorksheetFunction.CountIf(Range("O:O"), "COVID 19")
Nb_ROR = WorksheetFunction.CountIf(Range("O:O"), "ROR")

MsgBox "Synthèse des vaccins à réaliser : " & vbCrLf & "DTCaP : " & Nb_DTCaP & vbCrLf & "Méningites : " & Nb_Méningites & vbCrLf & "Fièvre typhoïde : " & Nb_Fièvre_typhoïde & vbCrLf & "Encéphalites à tiques : " & Nb_Encéphalites_à_tiques & vbCrLf & "Grippes saisonnières : " & Nb_Grippes_saisonnières & vbCrLf & "Fièvre jaune : " & Nb_Fièvre_jaune & vbCrLf & "Hépatite virale A : " & Nb_Hépatite_virale_A & vbCrLf & "Hépatite virale B : " & Nb_Hépatite_virale_B & vbCrLf & "COVID-19 : " & Nb_COVID_19 & vbCrLf & "ROR : " & Nb_ROR

End Sub

Mais cela ne marche pas. Cela marche uniquement si je mets qu'un seul vaccin par cellule. Auriez-vous une solution ?

Merci d'avance !

Cdt, Rémi

A voir également:

5 réponses

danielc0 Messages postés 1137 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 septembre 2024 132
22 mai 2024 à 10:44

Bonjour,

Un peu au hasard. Il faut mettre des caractères génériques dans les "CountIf", par exemple :

Nb_DTCaP = WorksheetFunction.CountIf(Range("O:O"), "*DTCaP*")

Daniel


0
via55 Messages postés 14473 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 13 septembre 2024 2 728
22 mai 2024 à 10:48

Bonjour

Pour avoir une réponse adaptée il faut fournir ton fichier en le postant sur cjoint.com, en faisant créer un lien que tu copies et reviens coller ici

Dans l'attente

Cdlmnt


0
Remi2236 Messages postés 86 Date d'inscription jeudi 10 septembre 2015 Statut Membre Dernière intervention 22 mai 2024 1
22 mai 2024 à 11:14

Bonjour,

Merci pour votre réponse, j'ai essayé mais ça ne change rien. Du moment où il y a plusieurs termes dans une même cellule, cela ne marche pas...

Je ne sais pas si une autre solution est possible.

Cdt

0
danielc0 Messages postés 1137 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 septembre 2024 132
22 mai 2024 à 11:33

La macro détecte bien 1 DTCaP dans la cellule ?

Daniel

0
danielc0 Messages postés 1137 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 septembre 2024 132
22 mai 2024 à 11:27

Partage un classeur.

Daniel


0

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

Posez votre question
Remi2236 Messages postés 86 Date d'inscription jeudi 10 septembre 2015 Statut Membre Dernière intervention 22 mai 2024 1
22 mai 2024 à 12:01

Bonjour,

Je viens de voir votre macro et vous avez ajouté des * entre les termes. J'ai rajouté ces étoiles avant et après et du coup ça marche...je me sens très idiot !

Merci du coup...

Cdt

Rémi

0