Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

CountIfs(PlageLieu, Lieu, PlageAnnee, annee, Plagemois, Mois)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pmfontaine

XLDnaute Occasionnel
Bonjour,
Je dois compter en Vba le nombre d'éléments correspondant a un lieu, une année et a un mois (Et d'autres éléments sans intérêt pour ma question)

Comme vous pouvez le voir sur le fichier joint avec la macro CompteV1 ça marche très bien en rajoutant deux colonnes (Mois et Années)

Mais je pense qu'il doit être possible de faire la même chose sans être obligé de rajouter les deux colonnes "mois " et "année"
Mais je n'ai pas trouver la solution
Merci d'avance pour votre aide
Patrick
 

Pièces jointes

Bonjour

Merci JHA pour ta réponse, ce n'ai pas mon besoin actuel, mais ça peut servir et ça m'a donné une piste en Vba. Je pense que c'est possible avec une boucle qui vérifie les conditions est qui incrémente de 1 si la condition est remplie, mais mon fichier comporte 9 000 lignes et je pense que ce temps de traitement vas être très (trop) long.

Je suis persuadé qu'il y a une solution avec les données en tableau, mais mes compétences ne sont pas suffisantes.

En attendant d'autres propositions, je vais quand même continuer a chercher.

Patrick
 
Dernière édition:
Bonjour,
Je suis arriver à une solution qui marche est qui est rapide a priorie
Pour ceux que ça intéresse voila le code :
VB:
Sub TransfereTableau()
Dim MesDonnees() As Variant
Dim FinLig As Integer
Dim Lig As Integer
Dim Col As Integer
Dim Lieu As String
Dim Mois As Integer
Dim annee As Integer
Dim nombre As Integer

Lieu = Cells(2, 6)
Mois = Cells(2, 7)
annee = Cells(2, 8)
Sheets("BD").Select
FinLig = Range("A1").End(xlDown).Row
ReDim MesDonnees(FinLig - 2, 1)
For Col = 1 To 2
For Lig = 2 To FinLig
MesDonnees(Lig - 2, Col - 1) = Cells(Lig, Col)
If MesDonnees(Lig - 2, 0) = Lieu And Month(MesDonnees(Lig - 2, 1)) = Mois And Year(MesDonnees(Lig - 2, 1)) = annee Then
nombre = nombre + 1
Else
End If
Next Lig
Next Col
Cells(3, 10) = nombre
End Sub
End Sub
Je confirme que c'est la proposition de JHA qui m'a mis sur la piste.
Maintenant s'il y a moyen d'optimiser le code je suis preneur.
Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
353
S
Réponses
6
Affichages
1 K
C
Réponses
2
Affichages
934
Crepcrep
C
M
Réponses
14
Affichages
1 K
mraxone
M
A
Réponses
3
Affichages
938
A
Réponses
28
Affichages
7 K
C
Réponses
2
Affichages
1 K
Caylus
C
Y
  • Question Question
Réponses
10
Affichages
7 K
YasinGS
Y
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…