worsheet count

J

jp

Guest
Bonjour


J’ai fais une macro qui me permet d’obtenir des statistiques lorsque la date de réservation est inférieure ou égale à la date du jour

Pour obtenir ces statistiques j’ai besoin de connaître le nombre de feuilles du classeur qui répondent aux conditions suivantes :

1) que les cellules d’une zone donnée soient remplies

2) que la macro ne compte que les feuilles du classeur ou la date de réservation est inférieure ou égale à la date du jour

Actuellement j’utilise un worksheets.count !!! Autant dire que je divise ma formule par toutes les feuilles du classeur !!!

Comment faire pour que je divise uniquement par les feuilles répondant aux conditions ci-dessus ??????????

joyeuses fetes a tous!!!
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Tu vas être obligé je pense de boucler sur toutes tes feuilles du genre

dim ws as worksheet
Dim NbreFeuille as byte

for each ws in worksheets
if Première condition and deuxième condition then NbreFeuille =NbreFeuille +1
next

Bon courage
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Pascal, JP, le Forum


Voui voui Pascal, boucler toujours boucler, d'ailleurs j'en suis devenu tout frisé !!! lol

Bon voici TheBigBoucle ;)


Sub TheCounter()
Dim LaFeuilleScannee As Worksheet
Dim PlageQuiDoitEtreRemplie As Range
Dim Cellule As Range
Dim CelluleQuiContientLaDate
Dim LaDateLimite As Date
Dim Bad As Long
Dim FeuilleRetenue As String
Dim NombreFeuille As Integer



LaDateLimite =
Date 'Pour Aujourd'hui

For Each LaFeuilleScannee In ThisWorkbook.Worksheets
Bad = 0
   
With LaFeuilleScannee
       
Set PlageQuiDoitEtreRemplie = Application.Union(.Range('A1:E26'), .Range('A30:J32'), .Range('I4'))
       
Set CelluleQuiContientLaDate = .Range('A1')
   
End With
   
       
If CelluleQuiContientLaDate <= LaDateLimite Then
           
For Each Cellule In PlageQuiDoitEtreRemplie
               
If Cellule = Empty Then
                    Bad = Bad + 1
               
End If
           
Next
       
Else
            Bad = Bad + 1
       
End If
   
If Bad = 0 Then
    FeuilleRetenue = FeuilleRetenue & LaFeuilleScannee.Name & vbCrLf
    NombreFeuille = NombreFeuille + 1
   
End If

Next LaFeuilleScannee

       
MsgBox 'Voici les ' & NombreFeuille & ' Feuilles correspondantes aux critères:' & vbCrLf & FeuilleRetenue
           
End Sub


Je vous souhaite à tous de passer un Excellent Noël

[ol]@+Thierry[/ol]
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Filtre élaboré
Réponses
3
Affichages
236
Réponses
10
Affichages
485
Réponses
3
Affichages
288

Statistiques des forums

Discussions
312 444
Messages
2 088 482
Membres
103 867
dernier inscrit
nykostinson