nagstef
Messages postés93Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 septembre 2008
-
8 mai 2006 à 01:58
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 2018
-
8 mai 2006 à 21:23
Bonjour !!
Existe-t'il un code ou un sujet qui parle déjà de cela, parce que je n'ai rien trouvé en faisant les recherches, si ce n'est de trier des feuilles excel, ce qui ne me sert à rien !
En fait, il faudrait que je puisse trier une zone de selection du style (B2:J32) sous Excel en prenant comme triage l'ordre alphabétique de la colonne B en premier, et colonne C en deuxième etc ...
Merci de votre aide ..
A voir également:
Trier une colonne excel par ordre alphabétique vba
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 8 mai 2006 à 09:40
Salut,
Rien de plus simple, tu créer une macro, tu fais ta sélection + ton clic sur l'icone de trie par ordre alphabétique et hop c'est magique tu as ton code tout fait à savoir:
nagstef
Messages postés93Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 septembre 20081 8 mai 2006 à 13:44
Re-moi
Voici le code que la macro m'a donnée. J'ai placé "Feuille4" devant Range et Selection puisque la macro se fait sur la feuille active, sachant donc que Feuille4 est bien définie.
nagstef
Messages postés93Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 septembre 20081 8 mai 2006 à 20:19
Et voui, encore moi !!
Alors, dans le principe, cela marche bien, mais le problème qui se pose à moi, est que, dans un meme doc Xls, il me faut trier 3 onglets différents et ce avec 3 command différentes, donc pas au même moment, mais seulement à la demande.
Et apparement, lorsque je fais un Range.select, il ne se remet pas à Zéro une fois le ".sort" effectué.
Donc, lorsque je clique sur un autre bouton, il me fait encore :
"Erreur 1004
La méthode Select de la classe Range a échoué"
mon code, où seulement la "FeuilleX" change :
Private sub Command1_Click()
feuille_load 'là un module où je charge sans pb le worbook et worksheet, cela marche nickle pour d'autre partie du programme
Feuille6.Range("B2:W200").Select <== ERREUR et donc fin
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Key2:=Range("C1"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Feuille6.Range("").Select <== ERREUR si le .sort a bien marché ..
fin_feuille 'là, un module où je sauvegarde, et ferme l'appli
End Sub
Je ne comprends plus trop..
En un mot, le .select est-il gardé en mémoire, et si oui, comment le réinitialiser ?
Merci encore ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
nagstef
Messages postés93Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 septembre 20081 8 mai 2006 à 20:24
PS : j'ai remarqué que si je vais sur le fichier XLS concerné, et que je selectionne les Cellules ("B2:W200") et "Zone d'impression/Définir", le bouton correspondant à cet ongler marche bien, mais, le bouton correspondant à un autre onglet me fait l'erreur si dessus.
Et même, da,s le code, lorsque je prends les devants en faisant
Feuille4.PageSetup.PrintArea = "B2:W200"
Et bien, malgré tout, il me fait une erreur à la ligne suivante, c'est à dire :
Feuille4.Range("B2:W200").Select
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 8 mai 2006 à 20:47
Je ne sais pas si tu lis les réponses que l'ont te donnes....tu ne devrais plus avoir de problèmes...
Pourrais-tu une fois pour toute affirmer si tu travails en vba excel ou si tu es dans vb6 ?
nagstef
Messages postés93Date d'inscriptionsamedi 11 octobre 2003StatutMembreDernière intervention30 septembre 20081 8 mai 2006 à 21:14
yop !
Ben d'après le msg 3 et ta réponse 4, je pensais que tu avais bien compris que c'etait du VB6 ..
Alors, la raison pour laquelle j'ai essayé de passer par autre chose est la suivante :
Comme expliqué précédemment, j'ai plusieurs onglets pour lequels je veux trier, j'ai donc fais ceci en suivant ton exemple qui marche bien avec 1 onglet à trier :
Dim w As Workbook
Set w = Workbooks.Open("c:\centres.xls")
Dim x As Worksheet
Set x = w.Sheets("registre")
Set z = w.Sheets("infos")
w.Save
w.Close
Et là, à la 2ème ligne z.range .........
"Erreur 1004
Reférence de tri non valide, vérifiez qu'elle se trouve bien parmi les données à trier, et que la zone Trier par n'est pas identique ou vide"
Même lorsque je divise le code en 2 boutons distincts, erreur similaire. D'où mon incompréhension ...