OVH Cloud OVH Cloud

xlTop10Item , comment récupérer le N (ayant la valeur 10 ou autre)?

6 réponses
Avatar
Ma Dalton
Bonjour,
quelle est la formulation à utiliser pour désigner "les N premiers éléments
d'une liste" lors de l'usage d'un filtre automatique?

De toute évidence, ce n'est pas .opreator, ni criteria1 ou 2 !!!

merci

[...]
Case xlTop10Items
oper = "(" & .Operator & " premiers Items)"
^^^^^^^
[...]

6 réponses

Avatar
Denis Michon
Bonjour Ma Dalton,

Directement en provenance de l'aide d'excel :


Operator Argument XlAutoFilterOperator facultatif.
XlAutoFilterOperator peut être l'une de ces constantes XlAutoFilterOperator.
xlAnd default
xlBottom10Items
xlBottom10Percent
xlOr
xlTop10Items
xlTop10Percent
Utilisez xlAnd et xlOr avec Criteria1 et Criteria2 pour élaborer des critères composés.



Salutations!



"Ma Dalton" a écrit dans le message de news:
Bonjour,
quelle est la formulation à utiliser pour désigner "les N premiers éléments
d'une liste" lors de l'usage d'un filtre automatique?

De toute évidence, ce n'est pas .opreator, ni criteria1 ou 2 !!!

merci

[...]
Case xlTop10Items
oper = "(" & .Operator & " premiers Items)"
^^^^^^^
[...]
Avatar
Ma Dalton
Euhhh ! Et encore .....

Bonjour Denis,

La réponse ne comble malheureusement pas mes attentes. Pour mieux
comprendre la situation, je me place dans la peau de l'utilisateur qui fait
usage du filtre automatique et qui sélectionne l'option "personalisé" pour y
inscrire qu'il "veux les 10 premiers items (ou le N premiers)". La valeur
N est donc inscrite par l'utilisateur de manière interractive. À partir de
là, je me place dans la peau du concpteur, et je souhaite récupérer la
valeur N (pour l'afficher spécifiquement dans une cellule qui renseigne sur
le critère de sélection employé par l'utilisateur).

Ce que me donne l'aide excel ne traite que du "type" de sélection et
aucunement de la "valeur" de controle. Je comprend aussi de l'aide excel,
que criteria1 et 2 ne sont utilisables qu'avec xlAnd ou xlOr. En tout cas,
c'est ce que mes tentatives (infructueuses) ont donné.

Pour l'instant, j'arrive à mes fins en faisant inscrire dans une cellule
spécifique, la chaine de texte représentant le critère global du filtre.
Cependant cette chaine de texte se limite à dire "N premier cas" plutôt que
"5,10 ou 15 premier cas" avec le vrai chiffre tel que demandé par
l'utilisateur.

merci

"Denis Michon" a écrit dans le message news:
UdWnb.16095$

Bonjour Ma Dalton,

Directement en provenance de l'aide d'excel :


Operator Argument XlAutoFilterOperator facultatif.
XlAutoFilterOperator peut être l'une de ces constantes
XlAutoFilterOperator.

xlAnd default
xlBottom10Items
xlBottom10Percent
xlOr
xlTop10Items
xlTop10Percent
Utilisez xlAnd et xlOr avec Criteria1 et Criteria2 pour élaborer des
critères composés.




Salutations!



"Ma Dalton" a écrit dans le message de
news:

Bonjour,
quelle est la formulation à utiliser pour désigner "les N premiers
éléments

d'une liste" lors de l'usage d'un filtre automatique?

De toute évidence, ce n'est pas .opreator, ni criteria1 ou 2 !!!

merci

[...]
Case xlTop10Items
oper = "(" & .Operator & " premiers Items)"
^^^^^^^
[...]




Avatar
AV
A tester et voir si ça convient (?)
Avec le filtre appliqué sur la plage nommée "Liste" (A1:Ax par ex.) de "Feuil1"
Récupérer en C1 l'opérateur et le nbre choisi

Sub zz_test_Filtre()
On Error GoTo couic
With Sheets("Feuil1")
[C1] = ""
If .AutoFilterMode Then
With .AutoFilter.Filters(1)
x = .Operator: y = [subtotal(3,Liste)]
If x = 3 Then [C1] = "Haut " & y & " premiers items"
If x = 4 Then [C1] = "Bas " & y & " premiers items"
If x = 5 Then [C1] = "Haut " & y & " pourcentage"
If x = 6 Then [C1] = "Bas " & y & " pourcentage"
End With
End If
End With
couic:
End Sub

AV
Avatar
Ma Dalton
Salut,
je pense que c'est une bonne piste, j'ai pas encore réussi à l'implanter
convenablement (je suis à mes début avec VBA sous excel). Je vais
travailler la dessus aujourd'hui.

J'ai cependant un doute sur le résultat que cela va donner. J'ai
l'impression que le résultat obtenu sera un décompte du nb de lignes
filtrées (à moins que je me trompe) alors que le résultat que je cherche à
obtenir est un nombre de valeur distincte. Par exemple, on sélectionne les
3 premiers afin d'obtenir 50 lignes. Ce qui m'intéresse c'est le 3, pas le
50.

merci
.
"AV" a écrit dans le message news:
bnq70g$ede$
A tester et voir si ça convient (?)
Avec le filtre appliqué sur la plage nommée "Liste" (A1:Ax par ex.) de
"Feuil1"

Récupérer en C1 l'opérateur et le nbre choisi

Sub zz_test_Filtre()
On Error GoTo couic
With Sheets("Feuil1")
[C1] = ""
If .AutoFilterMode Then
With .AutoFilter.Filters(1)
x = .Operator: y = [subtotal(3,Liste)]
If x = 3 Then [C1] = "Haut " & y & " premiers items"
If x = 4 Then [C1] = "Bas " & y & " premiers items"
If x = 5 Then [C1] = "Haut " & y & " pourcentage"
If x = 6 Then [C1] = "Bas " & y & " pourcentage"
End With
End If
End With
couic:
End Sub

AV




Avatar
Ma Dalton
et c'est quoi les ":" entre
x = .Operator: y = [subtotal(3,Liste)]
est-ce une manière de mettre 2 commandes sur la même ligne?


merci

"AV" a écrit dans le message news:
bnq70g$ede$
A tester et voir si ça convient (?)
Avec le filtre appliqué sur la plage nommée "Liste" (A1:Ax par ex.) de
"Feuil1"

Récupérer en C1 l'opérateur et le nbre choisi

Sub zz_test_Filtre()
On Error GoTo couic
With Sheets("Feuil1")
[C1] = ""
If .AutoFilterMode Then
With .AutoFilter.Filters(1)
x = .Operator: y = [subtotal(3,Liste)]
If x = 3 Then [C1] = "Haut " & y & " premiers items"
If x = 4 Then [C1] = "Bas " & y & " premiers items"
If x = 5 Then [C1] = "Haut " & y & " pourcentage"
If x = 6 Then [C1] = "Bas " & y & " pourcentage"
End With
End If
End With
couic:
End Sub

AV




Avatar
Jean-François Aubert
Salut Ma Dalton,

est-ce une manière de mettre 2 commandes sur la même ligne?


Oui, c'est exacte.

PS: quand est-ce la prochaine évasion des fistons ?
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Ma Dalton" a écrit dans le message de
news:
et c'est quoi les ":" entre
x = .Operator: y = [subtotal(3,Liste)]
est-ce une manière de mettre 2 commandes sur la même ligne?


merci

"AV" a écrit dans le message news:
bnq70g$ede$
A tester et voir si ça convient (?)
Avec le filtre appliqué sur la plage nommée "Liste" (A1:Ax par ex.) de
"Feuil1"

Récupérer en C1 l'opérateur et le nbre choisi

Sub zz_test_Filtre()
On Error GoTo couic
With Sheets("Feuil1")
[C1] = ""
If .AutoFilterMode Then
With .AutoFilter.Filters(1)
x = .Operator: y = [subtotal(3,Liste)]
If x = 3 Then [C1] = "Haut " & y & " premiers items"
If x = 4 Then [C1] = "Bas " & y & " premiers items"
If x = 5 Then [C1] = "Haut " & y & " pourcentage"
If x = 6 Then [C1] = "Bas " & y & " pourcentage"
End With
End If
End With
couic:
End Sub

AV