Bonjour,
Je cherche actuellement à créer une macro qui me permettrait de compter le nombre de lignes de la colonne K répondant aux critères:
- soit égal à 31
- soit supérieur à 31 et inférieur à 180
Je sais que je pourrais le faire simplement avec une formule Excel mais la demande va évoluer dans peu de temps donc j'anticipe.
J'ai donc créé le code suivant :
Cependant, il semble ne pas marcher car il me retourne en C4 et en D4 les valeurs 0 alors qu'il devrait me retourner plusieurs centaines...
Je pense ne pas avoir réaliser les deux boucles comme il faut (je débute en VBA). Pouvez-vous m'indiquer mes erreurs?
Merci beaucoup pour votre aide.
Je cherche actuellement à créer une macro qui me permettrait de compter le nombre de lignes de la colonne K répondant aux critères:
- soit égal à 31
- soit supérieur à 31 et inférieur à 180
Je sais que je pourrais le faire simplement avec une formule Excel mais la demande va évoluer dans peu de temps donc j'anticipe.
J'ai donc créé le code suivant :
Code:
Sub MAJGlobal()
Dim cpt As Long, DernLigne As Long, i As Long 'déclaration des variables
DernLigne = Sheets("Data").Range("K1048576").End(xlUp).Row 'stocke dans la variable DernLigne le n° de la dernière ligne non vide
For i = 1 To DernLigne
If Cells(i, 11).Value = 31 Then 'Si la cellule (ième ligne, 11eme colonne) égal à 31 alors
cpt = cpt + 1 ' on ajoute 1 au compteur
End If ' sinon on fait rien et on continue
Next ' i suivant...
Sheets("Global").Range("C4").Value = cpt
For i = 1 To DernLigne
If Cells(i, 11).Value > 31 And Cells(i, 11).Value < 180 Then 'Si la cellule (ième ligne, 11eme colonne) supérieur à 31 et inférieur à 180
cpt = cpt + 1 ' on ajoute 1 au compteur
End If ' sinon on fait rien et on continue
Next ' i suivant...
Sheets("Global").Range("D4").Value = cpt
End Sub
Cependant, il semble ne pas marcher car il me retourne en C4 et en D4 les valeurs 0 alors qu'il devrait me retourner plusieurs centaines...
Je pense ne pas avoir réaliser les deux boucles comme il faut (je débute en VBA). Pouvez-vous m'indiquer mes erreurs?
Merci beaucoup pour votre aide.