Menu

VBA - Réorganiser des colonnes

Jauster 116 Messages postés jeudi 7 décembre 2017Date d'inscription 8 juin 2018 Dernière intervention - 8 mars 2018 à 11:58 - Dernière réponse : Jauster 116 Messages postés jeudi 7 décembre 2017Date d'inscription 8 juin 2018 Dernière intervention
- 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



Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
eriiic 21672 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention - 8 mars 2018 à 13:03
1
Merci
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

Merci eriiic 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 24222 internautes ce mois-ci

Jauster 116 Messages postés jeudi 7 décembre 2017Date d'inscription 8 juin 2018 Dernière intervention - 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
Jauster 116 Messages postés jeudi 7 décembre 2017Date d'inscription 8 juin 2018 Dernière intervention - 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 ;)
eriiic 21672 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention - 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.
Jauster 116 Messages postés jeudi 7 décembre 2017Date d'inscription 8 juin 2018 Dernière intervention - 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
Commenter la réponse de eriiic