Faciliter une macro

Bonjour à tous,

Voici le bout d'une macro qui fonctionne très bien (en tout cas elle fait ce que je veux qu'elle fasse), cependant on pourrai mieux l'écrire (cette dernière a été enregistré). Comment faire pour optimiser ce bout que je retrouve plusieurs fois dans ma macro? avec vba?

En vous remerciant par avance.

Columns("R:T").Select

Selection.Delete Shift:=xlToLeft

Columns("D:D").Select

Application.CutCopyMode = False

Selection.Delete Shift:=xlToLeft

Columns("H:H").Select

Selection.Delete Shift:=xlToLeft

Columns("G:G").Select

Selection.Delete Shift:=xlToLeft

Columns("H:H").Select

Selection.Delete Shift:=xlToLeft

Columns("J:J").Select

Selection.Delete Shift:=xlToLeft

Columns("J:K").Select

Selection.Delete Shift:=xlToLeft

Columns("K:K").Select

Selection.Delete Shift:=xlToLeft

Columns("M:M").Select

Selection.Delete Shift:=xlToLeft

Columns("N:P").Select

Selection.Delete Shift:=xlToLeft

Columns("O:Q").Select

Selection.Delete Shift:=xlToLeft

Columns("T:T").Select

Selection.Copy

Range("ax1").Select

ActiveSheet.Paste

Columns("R:R").Select

Selection.Copy

Range("ay1").Select

ActiveSheet.Paste

Columns("R:U").Select

Selection.Delete Shift:=xlToLeft

Columns("S:Z").Select

Selection.Delete Shift:=xlToLeft

Columns("T:U").Select

Selection.Delete Shift:=xlToLeft

Columns("X:Z").Select

Selection.Delete Shift:=xlToLeft

Columns("Z:AE").Select

Selection.Delete Shift:=xlToLeft

Columns("D:D").Select

Selection.Cut

Columns("A:A").Select

Selection.Insert Shift:=xlToRight

Columns("S:S").Select

Selection.Cut

Columns("B:B").Select

Selection.Insert Shift:=xlToRight

Columns("H:H").Select

Selection.Cut

Columns("C:C").Select

Selection.Insert Shift:=xlToRight

Columns("G:H").Select

Selection.Cut

Columns("D:D").Select

Selection.Insert Shift:=xlToRight

Columns("I:J").Select

Selection.Cut

Columns("F:F").Select

Selection.Insert Shift:=xlToRight

Columns("K:K").Select

Selection.Cut

Columns("H:H").Select

Selection.Insert Shift:=xlToRight

Columns("L:L").Select

Selection.Cut

Columns("K:K").Select

Selection.Insert Shift:=xlToRight

Columns("Q:R").Select

Selection.Cut

Columns("M:M").Select

Selection.Insert Shift:=xlToRight

Columns("S:S").Select

Selection.Cut

Columns("P:P").Select

Selection.Insert Shift:=xlToRight

Columns("W:Z").Select

Selection.Cut

Columns("R:R").Select

Selection.Insert Shift:=xlToRight

Range("A1").Select

bonjour

mon avis : ne JAMAIS supprimer de données. C'est inutile, on perd les historiques, on perd les capacités à faire des comparaisons (par mois, par année, par... ), on risque d'effacer des données accidentellement, on risque de planter si l'opération ne va pas au bout...

note : il faut donc utiliser toutes les ressources d'analyse de données d'Excel : tris, filtres, TCD, Power Query, graphiques...

amitiés

Bonjour,

C'est assez difficile d'optimiser un code comme celui ci, par ce que à chaque suppression ou insertion, les colonnes de départs bougent, et la colonne "D:D" initiale par exemple n'est plus au même endroit en fin de macro.

Peux-tu préciser l'objectif de la macro, idéalement fournir un fichier même vide de données, dans lequel tu colores les colonnes à supprimer, celles à déplacer... ?

edit : salut jmd !

Le but est en faite d'avoir que les colonnes qui nous intéressent ainsi que d'ajouter des colonnes de calculs dans un second temps avec des =SI tout cela dans un seul et unique tableau assez conséquent.

Il faut peut être réécrire une macro mais comment commencer? Je pensais écrire une macro qui choisit les éléments dont j'ai besoin, et pas copier-coller puis supprimer comme c'est le cas maintenant.

Merci de vos réponses rapide !

re

joins un peeeeetit fichier de 3 colonnes et 5 lignes et le résultat attendu

tu gères quoi dans ce fichier ?

amitiés

En gros c'est une base de données comme ceci à la fin, mais au départ il y a plus de 45 colonnes (dont des redondances avec plusieurs fois la date de livraison par exemple). De plus les dernières colonnes sont des calculs à effectuer de manière automatisé.

Les colonnes de départ viennent après extraction sur SAP et ne sont pas dans l'ordre final que je souhaite.

12essai.xlsx (11.67 Ko)

Merci d'avoir joint un visuel du fichier final, mais il manque toujours le fichier de départ...

Voila j'ai rajouté un visuel départ --> arrivé en espérant que vous voyez le cœur de mon problème.

Merci beaucoup !

27essai.xlsx (20.64 Ko)
Rechercher des sujets similaires à "faciliter macro"