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

Encore un petit truc trivial

8 réponses
Avatar
Thierry
Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des
dates ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))

8 réponses

Avatar
papou
Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

"Thierry" a écrit dans le message de
news:
Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des dates
ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))





Avatar
Thierry
Merci pour cette prompte et claire réponse....Mais en fait, j'avais
trouvé ce type dans la liste et mon anglais étant quasi parfait, j'avais
cru deviner que ca pouvait coller. MAIS, car il y a un mais, quand je
lance la macro, j'ai un beau message "Erreur 1004 : la méthode sort a
échoué ...(ma variable Ordre vaut 2)..??!!
J'hésite entre brancher mon PC sur le 380 ou le jeter dans la baignoire
pleine !!

Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

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

Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des dates
ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))










Avatar
papou
, j'ai un beau message "Erreur 1004 : la méthode sort a échoué
à mon avis tu devrais peut-être t'assurer que tu te trouves bien dans la

feuille où tu dois effectuer le tri et sur une zone de données
Peut-être stipuler le nom de ta feuille dans ton tri ?

...(ma variable Ordre vaut 2)..??!!
Normal, la valeur est une constante tranformée en 1 ou 2 selon qu'il s'agit

de xlAscending ou xlDescending

Cordialement
Pascal


"Thierry" a écrit dans le message de
news: eb%
Merci pour cette prompte et claire réponse....Mais en fait, j'avais trouvé
ce type dans la liste et mon anglais étant quasi parfait, j'avais cru
deviner que ca pouvait coller. MAIS, car il y a un mais, quand je lance la
macro, j'ai un beau message "Erreur 1004 : la méthode sort a échoué ...(ma
variable Ordre vaut 2)..??!!
J'hésite entre brancher mon PC sur le 380 ou le jeter dans la baignoire
pleine !!

Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

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

Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des
dates ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))











Avatar
jps
ben moi, j'ai fait les deux, thierry ; du coup, mon ordi m'a remercié de
l'avoir mis d'abord au courant , dans le bain ensuite, ce qu'à tort j'avais
omis de faire jusque-là, persuadé que j'étais qu'un PC n'avait pas d'âme qui
s'attache à notre âme..etc...etc...
jps

"Thierry" a écrit dans le message de
news:eb%
J'hésite entre brancher mon PC sur le 380 ou le jeter dans la baignoire
pleine !!

Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

"Thierry" a écrit dans le message
de


news:

Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des
dates



ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))












Avatar
Pierre Fauconnier
Bonsoir

Il faut que Ordre soit égal à 1 ou à 2 pour que la macro puisse fonctionner,
puisque les seules valeurs acceptées sont 1 ou 2.

Or, dans le code donné, Ordre est dimensionné, mais il vaut 0. Dès lors,
aucune des conditions n'est remplie et lorsque la ligne
selection.sort... est exécutée, Odre vaut toujours 0

Dès lors, après la ligne Dim, il faut mettre, par exemple
Ordre = xlDescending
Ainsi, les tests sont effectués, Ordre passe à la valeur xlAscending et le
tri peut être effectué. Il faut bien entendu inverser les valeurs si l'on
veut un tri decroissant lors du premier clic sur le bouton

Ok?

Pierre

"Thierry" a écrit dans le message de
news: eb%
Merci pour cette prompte et claire réponse....Mais en fait, j'avais trouvé
ce type dans la liste et mon anglais étant quasi parfait, j'avais cru
deviner que ca pouvait coller. MAIS, car il y a un mais, quand je lance la
macro, j'ai un beau message "Erreur 1004 : la méthode sort a échoué ...(ma
variable Ordre vaut 2)..??!!
J'hésite entre brancher mon PC sur le 380 ou le jeter dans la baignoire
pleine !!

Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

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

Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des
dates ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))











Avatar
Pierre Fauconnier
On peut aussi simplier un peu dans les if, en ne testant que la valeur égale
à xlAscending.

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
Else
Ordre = xlAscending
End If

Ainsi, Ordre est initialisé à xlAscending à la première utilisation...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Thierry" a écrit dans le message de
news: eb%
Merci pour cette prompte et claire réponse....Mais en fait, j'avais trouvé
ce type dans la liste et mon anglais étant quasi parfait, j'avais cru
deviner que ca pouvait coller. MAIS, car il y a un mais, quand je lance la
macro, j'ai un beau message "Erreur 1004 : la méthode sort a échoué ...(ma
variable Ordre vaut 2)..??!!
J'hésite entre brancher mon PC sur le 380 ou le jeter dans la baignoire
pleine !!

Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

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

Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des
dates ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))











Avatar
MichDenis
Bonjour Pierre,

Lorsque l'on ne connaît pas le nom de la constante qui identifie le groupe de constantes auxquelles ont référent, utilises
l'explorateur d'objets, tu fais une recherche sur xlDescending et tu vas obtenir dans la colonne de gauche, l'item approprié.


Salutations!


"Pierre Fauconnier" a écrit dans le message de news: %
On peut aussi simplier un peu dans les if, en ne testant que la valeur égale
à xlAscending.

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
Else
Ordre = xlAscending
End If

Ainsi, Ordre est initialisé à xlAscending à la première utilisation...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Thierry" a écrit dans le message de
news: eb%
Merci pour cette prompte et claire réponse....Mais en fait, j'avais trouvé
ce type dans la liste et mon anglais étant quasi parfait, j'avais cru
deviner que ca pouvait coller. MAIS, car il y a un mais, quand je lance la
macro, j'ai un beau message "Erreur 1004 : la méthode sort a échoué ...(ma
variable Ordre vaut 2)..??!!
J'hésite entre brancher mon PC sur le 380 ou le jeter dans la baignoire
pleine !!

Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

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

Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des
dates ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))











Avatar
Pierre Fauconnier
Bonsoir Denis,

Oui, je connaissais cette possibilité et je l'utilise d'ailleurs souvent,
lorsque j'ai un trou de mémoire.

Mais dans le code de ma réponse, j'ai loupé le copier-coller et repris le
code du message de la demande

Bonne soirée

Pierre

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

Bonjour Pierre,

Lorsque l'on ne connaît pas le nom de la constante qui identifie le groupe
de constantes auxquelles ont référent, utilises
l'explorateur d'objets, tu fais une recherche sur xlDescending et tu vas
obtenir dans la colonne de gauche, l'item approprié.


Salutations!


"Pierre Fauconnier" a écrit dans le
message de news: %
On peut aussi simplier un peu dans les if, en ne testant que la valeur
égale
à xlAscending.

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
Else
Ordre = xlAscending
End If

Ainsi, Ordre est initialisé à xlAscending à la première utilisation...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Thierry" a écrit dans le message de
news: eb%
Merci pour cette prompte et claire réponse....Mais en fait, j'avais
trouvé
ce type dans la liste et mon anglais étant quasi parfait, j'avais cru
deviner que ca pouvait coller. MAIS, car il y a un mais, quand je lance
la
macro, j'ai un beau message "Erreur 1004 : la méthode sort a échoué
...(ma
variable Ordre vaut 2)..??!!
J'hésite entre brancher mon PC sur le 380 ou le jeter dans la baignoire
pleine !!

Bonjour
Dim ordre As XlSortOrder
Cordialement
Pascal

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

Bonjour tout le monde !

Les possibilités de VBA dépassant quelque peu les capacités des quelques
neurones qui me restent, et n'ayant pas envie de lire les 23.738 pages
d'aide, voici donc ma question :

Je crée une barre d'outils avec 2 boutons qui me permettent de faire du
tri sur une zone sélectionnée par macro; c'est un tri simple sur des
dates ou des numéros d'ordre.

Je souhaite qu'un click trie en ordre ascendant et qu'un deuxième click
sur le même bouton trie en ordre descendant, ça donne a peu près :

Dim Ordre As ???????? Je dois déclarer cette variable en quel type ????
If Ordre = xlAscending Then
Ordre = xlDescending
ElseIf Ordre = xlDescending Then
Ordre = xlAscending
End If
....
Selection.Sort key1:=Range("A1"), order1:=Ordre, Header:=xlGuess,
ordercustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom

D'avance merci de vous pencher sur mon minusculissime souci !

@+tp :-))