VBA - Réorganiser des colonnes

[Fermé]
Signaler
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
-
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
-
Bonjour le forum,

Je cherche une macro pour réorganiser des colonnes selon un ordre que j'ai fixé. Mon fichier étant assez lourd avec pas mal de macros, je souhaite éviter d'utiliser le presse papier Excel avec cut/insert et de rallonger la durée d’exécution de ma macro.

Avec vous une piste de macro que je pourrais ensuite adapter à mon fichier ?

Quelques informations supplémentaires sur le fichier :

- Les colonnes ont des Headers, mais ces derniers ne sont pas définitifs et seront amenés à changer au cours de la macro.
- Voilà pour le moment à quoi ressemble la partie que je souhaite optimiser :
'With wsMAJ
''    .Columns("D:D").NumberFormat = "0"
''    .Columns("F:F").Cut
''    .Columns("A:A").Insert Shift:=xlToRight
''    .Columns("D:D").Cut
''    .Columns("B:B").Insert Shift:=xlToRight
''    .Columns("A:G").EntireColumn.AutoFit
'End With


- wsMAJ correspond à ma feuille.

Si besoin, je pourrais uploader un fichier exemple, mais je ne pense pas qu'il soit utile pour ce cas, je saurais adapter la macro à mon fichier.

Merci d'avance pour votre aide,

J.

PS: Ici il n'y a que 2 colonnes à bouger, mais dans le futur, il y aura éventuellement plusieurs dizaine de colonne à déplacer



1 réponse

Messages postés
24184
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 septembre 2021
6 898
Bonjour,

pas beaucoup d'autre possibilité que de couper-coller pour ordonner des colonnes.
Ajouter Application.ScreenUpdating = False au début, et mettre le calcul en manuel s'il y a des formules, à rétablir à la fin.

Une autre quand même :
- insérer une ligne en haut et numéroter l'ordre voulu.
- copier-collage spécial 'transposer' ailleurs
- trier sur colonne 1
- copier-collage spécial 'transposer' le résultat à son emplacement d'origine.
Reste à chronométrer pour voir si ça te fait un gain dans ton cas.
eric
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
19
Hello Eriiic,

Je vais essayer, c'est vrai que sur 10 colonnes, le presse-papier n'est utilisé que 2 fois.

Merci
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
19
Bon, j'obtiens une erreur quand je veux transposer et je veux vraiment pas me prendre la tête avec cette partie du code qui n'est qu'un détail. Je pense que je vais rester avec ma méthode initiale si il n'y a pas de "méthode universelle" pour faire ce genre de chose, mais merci pour l'aide ;)
Messages postés
24184
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 septembre 2021
6 898
il ne faut pas que les 2 plages se recoupent, essaie en utilisant une feuille annexe ça évitera tout soucis de cert ordre.
Messages postés
126
Date d'inscription
jeudi 7 décembre 2017
Statut
Membre
Dernière intervention
31 août 2018
19
L'erreur venait du fait que je sélectionnais les colonnes au lieu de me limiter uniquement à la plage que je voulais transposer