Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA Compter le nombre de resultat suite à un filtre

5 réponses
Avatar
dvincent
Bonjour,

Je dois faire des tests dans une feuille sur 3 critères :
- TelephoneFixe
- ValidationProposition ( Oui/Non/Inconnu)
- NumProposition

Au lieux de parcourir ligne par ligne chaque cellule, je me demande s'il ne
serait pas possible de passer par des filtres.

En fait je dois savoir si :

pour un numero de telephone, ValidationProposition à Oui,
NumdeProposition non renseigné
je n'ai aucun cas existant

Je sais faire en VBA la "requete" pour le filtre, mais comme je veux
recuperer dans une variable le nombre de réponses pour ensuite effectuer
d'autres tâches.

Merci de votre aide.

5 réponses

Avatar
Didier
Salut mets cette procédure après le filtre.
Didier


Sub NombreEnregistrements()

Dim A As Long

Comptage = Application.Subtotal(3, [A3:A15000])

With ActiveSheet
A = Application.Subtotal(3, .Range("A:A")) - 1
If A = 0 Then
MsgBox "Aucun enregistrement ne correspond au critère retenu.",
vbInformation + vbOKOnly, "Aucun dossier"
AfficherTout
End If
If A = 1 Then
MsgBox "" & Comptage & " dossier correspond au critère retenu.",
vbInformation + vbOKOnly, "1 dossier"
End If
If A > 1 Then
MsgBox "Il y a " & Comptage & " dossiers qui correspondent au
critère retenu.", vbInformation + vbOKOnly, "Nombre de dossiers"

End If
End With
End Sub




"dvincent" a écrit dans le message de news:

Bonjour,

Je dois faire des tests dans une feuille sur 3 critères :
- TelephoneFixe
- ValidationProposition ( Oui/Non/Inconnu)
- NumProposition

Au lieux de parcourir ligne par ligne chaque cellule, je me demande s'il
ne
serait pas possible de passer par des filtres.

En fait je dois savoir si :

pour un numero de telephone, ValidationProposition à Oui,
NumdeProposition non renseigné
je n'ai aucun cas existant

Je sais faire en VBA la "requete" pour le filtre, mais comme je veux
recuperer dans une variable le nombre de réponses pour ensuite effectuer
d'autres tâches.

Merci de votre aide.




Avatar
dvincent
Aie j'ai oublié de préciser, c'est sous Excel97, apparement Subtotal
n'existe pas...


"Didier" a écrit dans le message de news:

Salut mets cette procédure après le filtre.
Didier


Sub NombreEnregistrements()

Dim A As Long

Comptage = Application.Subtotal(3, [A3:A15000])

With ActiveSheet
A = Application.Subtotal(3, .Range("A:A")) - 1
If A = 0 Then
MsgBox "Aucun enregistrement ne correspond au critère retenu.",
vbInformation + vbOKOnly, "Aucun dossier"
AfficherTout
End If
If A = 1 Then
MsgBox "" & Comptage & " dossier correspond au critère
retenu.",

vbInformation + vbOKOnly, "1 dossier"
End If
If A > 1 Then
MsgBox "Il y a " & Comptage & " dossiers qui correspondent au
critère retenu.", vbInformation + vbOKOnly, "Nombre de dossiers"

End If
End With
End Sub




"dvincent" a écrit dans le message de news:

Bonjour,

Je dois faire des tests dans une feuille sur 3 critères :
- TelephoneFixe
- ValidationProposition ( Oui/Non/Inconnu)
- NumProposition

Au lieux de parcourir ligne par ligne chaque cellule, je me demande s'il
ne
serait pas possible de passer par des filtres.

En fait je dois savoir si :

pour un numero de telephone, ValidationProposition à Oui,
NumdeProposition non renseigné
je n'ai aucun cas existant

Je sais faire en VBA la "requete" pour le filtre, mais comme je veux
recuperer dans une variable le nombre de réponses pour ensuite effectuer
d'autres tâches.

Merci de votre aide.








Avatar
dvincent
Euh, si ca existe, c'est simplement que SubTotal n'apparaissait pas dans
l'aide en effetuant une recherche direct


Peux-tu m'expliquer quelques éléments ?

Comptage = Application.Subtotal(3, [A3:A15000])

le 3 c'est quoi exactement sont utilité, j'ai vu dans l'aide GroupBy mais je
ne comprends pas.
le reste c'est la plage, moi étant donné que j'ai 1 entête j'ai mis
B2:B65535 ( ma colonne B devant avoir toujours du texte car en provenance
d'un formulaire)

A = Application.Subtotal(3, .Range("A:A")) - 1

La je comprend pas ?? on a le Comptage alors à quoi ceci sert-il ?

Merci de ton aide, je n'aurais jamais trouvé tout seul !

"Didier" a écrit dans le message de news:

Salut mets cette procédure après le filtre.
Didier


Sub NombreEnregistrements()

Dim A As Long

Comptage = Application.Subtotal(3, [A3:A15000])

With ActiveSheet
A = Application.Subtotal(3, .Range("A:A")) - 1
If A = 0 Then
MsgBox "Aucun enregistrement ne correspond au critère retenu.",
vbInformation + vbOKOnly, "Aucun dossier"
AfficherTout
End If
If A = 1 Then
MsgBox "" & Comptage & " dossier correspond au critère
retenu.",

vbInformation + vbOKOnly, "1 dossier"
End If
If A > 1 Then
MsgBox "Il y a " & Comptage & " dossiers qui correspondent au
critère retenu.", vbInformation + vbOKOnly, "Nombre de dossiers"

End If
End With
End Sub




"dvincent" a écrit dans le message de news:

Bonjour,

Je dois faire des tests dans une feuille sur 3 critères :
- TelephoneFixe
- ValidationProposition ( Oui/Non/Inconnu)
- NumProposition

Au lieux de parcourir ligne par ligne chaque cellule, je me demande s'il
ne
serait pas possible de passer par des filtres.

En fait je dois savoir si :

pour un numero de telephone, ValidationProposition à Oui,
NumdeProposition non renseigné
je n'ai aucun cas existant

Je sais faire en VBA la "requete" pour le filtre, mais comme je veux
recuperer dans une variable le nombre de réponses pour ensuite effectuer
d'autres tâches.

Merci de votre aide.








Avatar
Didier
Lorsque tu as subtotal cela est le VBA de sous-total
le n° de fonction ici est = 3 cad NBVAL
1 =MOYENNE 4 = MAX 7 = ECARTYPE etc.puis la plage A3:A15000
Cordialement
Didier

"dvincent" a écrit dans le message de news:

Euh, si ca existe, c'est simplement que SubTotal n'apparaissait pas dans
l'aide en effetuant une recherche direct


Peux-tu m'expliquer quelques éléments ?

Comptage = Application.Subtotal(3, [A3:A15000])

le 3 c'est quoi exactement sont utilité, j'ai vu dans l'aide GroupBy mais
je
ne comprends pas.
le reste c'est la plage, moi étant donné que j'ai 1 entête j'ai mis
B2:B65535 ( ma colonne B devant avoir toujours du texte car en provenance
d'un formulaire)

A = Application.Subtotal(3, .Range("A:A")) - 1

La je comprend pas ?? on a le Comptage alors à quoi ceci sert-il ?

Merci de ton aide, je n'aurais jamais trouvé tout seul !

"Didier" a écrit dans le message de news:

Salut mets cette procédure après le filtre.
Didier


Sub NombreEnregistrements()

Dim A As Long

Comptage = Application.Subtotal(3, [A3:A15000])

With ActiveSheet
A = Application.Subtotal(3, .Range("A:A")) - 1
If A = 0 Then
MsgBox "Aucun enregistrement ne correspond au critère retenu.",
vbInformation + vbOKOnly, "Aucun dossier"
AfficherTout
End If
If A = 1 Then
MsgBox "" & Comptage & " dossier correspond au critère
retenu.",

vbInformation + vbOKOnly, "1 dossier"
End If
If A > 1 Then
MsgBox "Il y a " & Comptage & " dossiers qui correspondent au
critère retenu.", vbInformation + vbOKOnly, "Nombre de dossiers"

End If
End With
End Sub




"dvincent" a écrit dans le message de news:

Bonjour,

Je dois faire des tests dans une feuille sur 3 critères :
- TelephoneFixe
- ValidationProposition ( Oui/Non/Inconnu)
- NumProposition

Au lieux de parcourir ligne par ligne chaque cellule, je me demande
s'il
ne
serait pas possible de passer par des filtres.

En fait je dois savoir si :

pour un numero de telephone, ValidationProposition à Oui,
NumdeProposition non renseigné
je n'ai aucun cas existant

Je sais faire en VBA la "requete" pour le filtre, mais comme je veux
recuperer dans une variable le nombre de réponses pour ensuite
effectuer
d'autres tâches.

Merci de votre aide.












Avatar
Didier
RE, la procédure Affichertout
Didier

Sub Affichertout()
'ActiveSheet.Unprotect Password:="toto"
If ActiveSheet.AutoFilterMode = True Then
ActiveSheet.AutoFilterMode = False
End If
Range("A1").Select 'Afin de perdre la selection
ActiveWindow.SmallScroll ToRight:=-100
'ActiveSheet.Protect Password:="toto"
End Sub


"dvincent" a écrit dans le message de news:

Aie j'ai oublié de préciser, c'est sous Excel97, apparement Subtotal
n'existe pas...


"Didier" a écrit dans le message de news:

Salut mets cette procédure après le filtre.
Didier


Sub NombreEnregistrements()

Dim A As Long

Comptage = Application.Subtotal(3, [A3:A15000])

With ActiveSheet
A = Application.Subtotal(3, .Range("A:A")) - 1
If A = 0 Then
MsgBox "Aucun enregistrement ne correspond au critère retenu.",
vbInformation + vbOKOnly, "Aucun dossier"
AfficherTout
End If
If A = 1 Then
MsgBox "" & Comptage & " dossier correspond au critère
retenu.",

vbInformation + vbOKOnly, "1 dossier"
End If
If A > 1 Then
MsgBox "Il y a " & Comptage & " dossiers qui correspondent au
critère retenu.", vbInformation + vbOKOnly, "Nombre de dossiers"

End If
End With
End Sub




"dvincent" a écrit dans le message de news:

Bonjour,

Je dois faire des tests dans une feuille sur 3 critères :
- TelephoneFixe
- ValidationProposition ( Oui/Non/Inconnu)
- NumProposition

Au lieux de parcourir ligne par ligne chaque cellule, je me demande
s'il
ne
serait pas possible de passer par des filtres.

En fait je dois savoir si :

pour un numero de telephone, ValidationProposition à Oui,
NumdeProposition non renseigné
je n'ai aucun cas existant

Je sais faire en VBA la "requete" pour le filtre, mais comme je veux
recuperer dans une variable le nombre de réponses pour ensuite
effectuer
d'autres tâches.

Merci de votre aide.