Pb pour trier des données xls via macro VB

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ch0rizz0_boulo

XLDnaute Nouveau
Bonjour,

J'ai une macro qui manipule des donner entre plusieurs fichiers .xls. En plein milieu de la macro, j'ai besoin d'effectuer un trie sur les données d'un fichier mais la macro bug.
Ce qui me pose problème, c'est que si je mets sur cette macro un point d'arrêt juste avant ce trie, je la relance, au point d'arrêt j'enregistre en macro mes prochaines actions, je fais ce trie manuelement via xls (données -> trier...) CA MARCHE SANS BUGGER Grrrrrr, je stop l'enregistrement.
J'ai donc une syntaxe qui est sencé marcher, que j'intègre donc à ma macro mais qui plante malheuresement.

Voiçi la syntaxe du trie qui plante:

Code:
ActiveWindow.WindowState = xlMaximized
        
         Selection.Sort Key1:=Range("I2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Selection.Sort Key1:=Range("G2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        
ActiveWindow.WindowState = xlMinimized

Si j'enlève la syntaxe du trie et si je laisse ceci ca marche aussi :

Code:
ActiveWindow.WindowState = xlMaximized
 
        Selection.Value = "toto"
         'Selection.Sort Key1:=Range("I2"), Order1:=xlAscending, Header:=xlGuess, _
        'OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        'DataOption1:=xlSortNormal
    'Selection.Sort Key1:=Range("G2"), Order1:=xlAscending, Header:=xlGuess, _
        'OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        'DataOption1:=xlSortNormal
        
ActiveWindow.WindowState = xlMinimized...

le fichier en question se mets bien en plein écran, on a bien toto ds les cellules selectionées, puis le fichier se minimise...

Le mieux serait de tester mon fichier:
Pour tester, vous devez mettre les deux fichiers .xls dans un même répertoire, ensuite ouvrez le fichier "MacroPbTri.xls" et cliquez sur le bouton "Remplir nomenclature". lors du pop up demandant le tri cliquez sur oui.
la macro bug ici, alors que j'veux seulement trier les données d'un tableau Excel!!!

Si quelqu'un peux m'aidez, je lui en serais vraiment reconnaissant car tout le monde autour de moi coince sur ce problème.
Je n'ai que peut d'expérience en VB, merci de votre aide
 

Pièces jointes

Re : Pb pour trier des données xls via macro VB

Salut,

Et bien, tu as du passer un peu de temps a faire ce code. En tout cas, il y aurai un peu de menage a faire, notamment enlever les Select
Sinon, pour ton message d'erreur, j'ai simplement simplifier un peu le code et surtout, je l'ai mis dans un module et non dans le code d'une feuille :
Code:
With Workbooks(fichier_list).Worksheets(1).Range("A2:R251")
    .Sort Key1:=Range("G2"), Order1:=xlAscending
    .Sort Key1:=Range("I2"), Order1:=xlAscending
End With

Par contre, il met tout de meme un message d'erreur dans la suite du code, je te laisse regarder l'erreur.

@+
 
Re : Pb pour trier des données xls via macro VB

Salut,

Et bien, tu as du passer un peu de temps a faire ce code. En tout cas, il y aurai un peu de menage a faire, notamment enlever les Select
Sinon, pour ton message d'erreur, j'ai simplement simplifier un peu le code et surtout, je l'ai mis dans un module et non dans le code d'une feuille :
Code:
With Workbooks(fichier_list).Worksheets(1).Range("A2:R251")
    .Sort Key1:=Range("G2"), Order1:=xlAscending
    .Sort Key1:=Range("I2"), Order1:=xlAscending
End With

Par contre, il met tout de meme un message d'erreur dans la suite du code, je te laisse regarder l'erreur.

@+
Salut
J'ai essayé de déchiffrer le code de la macro, mais je dois pas avoir le bon décodeur : plein de code qui me semble inutile (comme trier en 2 fois sur une clé, et pas en une fois sur 2 clés).
J'ai lancer la macro, et elle plante sur le tri. Bon
J'ai mis la ligne
'ActiveWindow.WindowState = xlMinimized
en commentaire et ça ne plante plus sur le tri (ça plante ailleurs, mais plus sur le tri)

Sur tes 630 lignes de code, tu devrais pouvoir rn jeter les 2/3, ce qui accélèrerais la macro, et la rendrait maintenavle
Maintenant, c'est peut-être juste une compilation de macro pour le fichier de test

A+
 
Re : Pb pour trier des données xls via macro VB

Bonjour à tous,

Avant tout, merci à porcinet82 et à Gorfael pour vos réponses et le temps que vous m'avez consacré.

à porcinet82: j'ai utilisé ta modification mais ca plantais tjrs. Ensuite je l'ai déplacé dans un module et ca à marché 😉 donc un grand merci.

à Gorfael: j'avais essayé avant de la déplacer sur un module mais elle plantais encore chez moi même en mettant la ligne en commentaire. Pour le fait qu'elle plantait après le tri, c'est en fait normal car j'ai du supprimer ma trame (la présentation du fichier de base où se trouve le bouton "Remplir nomenclature") car mon fichier était trop lourd. Après test sur le bon fichier, ca marche.

J'ai encore un question pour finaliser mon programme, est il possible une fois que la macro a été déplacé dans un module de réaffecter le bouton "Remplir nomenclature" (issu de la barre d'outils "boite à outils controls" et non du la barre d'outils "formulaire") à ma macro?
Ma macro était sur une feuille car le seul moyen que je connais pour affecter à un bouton "boite à outils controls" est de double cliquer gauche en mode création; ca à pour effet d'ouvrir un "Private Sub CommandButton1_Click()" et "End sub".

Pour mes 680 lignes de macro 😱, elles ont été faites par moi, qui n'a vraiment pas beaucoup d'expérience en VBA. Je m'excuse pour ma syntaxe surement inappropriée et avec beaucoup de lignes inutiles j'en doute pas.
Je n'ai malheureusement pas beaucoup de temps à affecter au développement et ce n'est pas du tout ma formation. Mais j'avoue prendre un certain plaisir à ca...

En tout cas, merci à vous deux
 
Re : Pb pour trier des données xls via macro VB

Salut,

Pour affecter une macro à un bouton, rien de plus simple, tu mets dans le code de ton bouton Call le_nom_de_ta_macro
Et pour le dévelopement du code, tu pourras toujours t'y mettre a tes heures perdues... 😉

@+
 
Re : Pb pour trier des données xls via macro VB

Bonjour à tous,

Avant tout, merci à porcinet82 et à Gorfael pour vos réponses et le temps que vous m'avez consacré.

à porcinet82: j'ai utilisé ta modification mais ca plantais tjrs. Ensuite je l'ai déplacé dans un module et ca à marché 😉 donc un grand merci.

à Gorfael: j'avais essayé avant de la déplacer sur un module mais elle plantais encore chez moi même en mettant la ligne en commentaire. Pour le fait qu'elle plantait après le tri, c'est en fait normal car j'ai du supprimer ma trame (la présentation du fichier de base où se trouve le bouton "Remplir nomenclature") car mon fichier était trop lourd. Après test sur le bon fichier, ca marche.

J'ai encore un question pour finaliser mon programme, est il possible une fois que la macro a été déplacé dans un module de réaffecter le bouton "Remplir nomenclature" (issu de la barre d'outils "boite à outils controls" et non du la barre d'outils "formulaire") à ma macro?
Ma macro était sur une feuille car le seul moyen que je connais pour affecter à un bouton "boite à outils controls" est de double cliquer gauche en mode création; ca à pour effet d'ouvrir un "Private Sub CommandButton1_Click()" et "End sub".

Pour mes 680 lignes de macro 😱, elles ont été faites par moi, qui n'a vraiment pas beaucoup d'expérience en VBA. Je m'excuse pour ma syntaxe surement inappropriée et avec beaucoup de lignes inutiles j'en doute pas.
Je n'ai malheureusement pas beaucoup de temps à affecter au développement et ce n'est pas du tout ma formation. Mais j'avoue prendre un certain plaisir à ca...

En tout cas, merci à vous deux
Salut
p'tites questions :

1 - la raison des minimise/maximize est liée à une visualisation pénible, ou ça a une autre raison ? La méthode ScreenUpDating me semblerais plus interessante.

2 - Les instructions de mise en format partent tous d'un format par défaut ?

3 - Certaines instructions me semblent bizarres : tu as des boucles du style :
for X=y to z
Var_A=range(X, col)
range(X, col)=Var_A
next x
ça a une raison, ou c'est du "code parasite" ?

4 - Tu peux mettre ta macro qui marche, entre 2 balises Code , qu'on s'amuse un peu ?

A+
 
Re : Pb pour trier des données xls via macro VB

re,

Oula Gorfael tu t'ennuis ou quoi ?
J'ai voulu jeter un coup d'oeil hier et vue la quantité de code, et ne sachant pas trop ce que fait la macro, j'ai vite lacher l'affaire...
Mais effectivement, c'est vrai que comme tu l'as dit précédement, je pense que beaucoup de lignes sont superflues...
En tout cas, bon courage... 😉

@+
 
Re : Pb pour trier des données xls via macro VB

re à tous et désolé pour le retard.

à porcinet82: merci pour ton renseignement pour appeler une macro, je m'y mets dès que je peux😎. Sinon mon code sert à faire des une liste de lignes à partir d'un schéma réalisé sous Autocad.

à Gorfael:

1- oui, c une visualisation pénible et (il me semble) un ralitissement de la macro.

2- J'ai fait un modèle, préformaté en parties. J'utilise tjrs ce modèle pour récupérer les info des fichiers de données (générés via Autocad).

3- ??? Je ne crois pas qu'il y ai de code parasite mais vu mon peu d'expérience en VB, il y en a peut être. Peux tu copier coller une des parties où tu as un doute?

4-Je m'excuse par avance pour ma syntaxe mais je suis preneur pour tous renseignement car c'est vrai qu'elle est lourde à gerer dès qu'un problème se pose lors d'une utilisation sur un autre poste ou d'un changement de version d'excel (j'ai créé cette macro en 2001). voilà le monstre en pj
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
1 K
Réponses
11
Affichages
783
Réponses
1
Affichages
1 K
Réponses
1
Affichages
821
Retour