VBA - Réorganiser des colonnes

Fermé
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 - Modifié le 8 mars 2018 à 11:59
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 - 8 mars 2018 à 13:50
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

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
8 mars 2018 à 13:03
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
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40
8 mars 2018 à 13:17
Hello Eriiic,

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

Merci
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40
8 mars 2018 à 13:22
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 ;)
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
8 mars 2018 à 13:41
il ne faut pas que les 2 plages se recoupent, essaie en utilisant une feuille annexe ça évitera tout soucis de cert ordre.
0
Jauster Messages postés 126 Date d'inscription jeudi 7 décembre 2017 Statut Membre Dernière intervention 31 août 2018 40
8 mars 2018 à 13:50
L'erreur venait du fait que je sélectionnais les colonnes au lieu de me limiter uniquement à la plage que je voulais transposer
0