Bonjour à tous !
Je travaille actuellement sur l'automatisation d'un fichier, j'ai pu trouver pas mal de réponses à mes questions sur le forum et j'ai quasiment terminé, mais j'aimerais optimiser un élément pour lequel je n'ai pas trouvé de discussions similaires.
Pour faire bref :
- Mon fichier source provient du service informatique
- Avant toute chose, je dois retraiter l'ordre des colonnes
- Jusqu'à présent, ma macro changeait l'ordre des colonnes manuellement (ex. C->A, F->C, etc.)
- Cependant, afin d'éviter toute erreur suite à un changement de l'ordre des colonnes du fichier source, j'aimerais que ma macro exécute ces changements selon un mot-clé contenu dans la colonne (ici, ce sera l'en-tête de la colonne qui fera office de condition)
J'ai cherché un peu partout mais les seules discussions s'y rapprochant concernaient la simple permutation de colonnes, sans utilisation de condition/mot-clé...
Si quelqu'un peut m'aider, je suis preneur !
Merci d'avance !
PS : Voici mon code actuel, que je pourrais peut-être simplement améliorer pour insérer les critères directement !
Je travaille actuellement sur l'automatisation d'un fichier, j'ai pu trouver pas mal de réponses à mes questions sur le forum et j'ai quasiment terminé, mais j'aimerais optimiser un élément pour lequel je n'ai pas trouvé de discussions similaires.
Pour faire bref :
- Mon fichier source provient du service informatique
- Avant toute chose, je dois retraiter l'ordre des colonnes
- Jusqu'à présent, ma macro changeait l'ordre des colonnes manuellement (ex. C->A, F->C, etc.)
- Cependant, afin d'éviter toute erreur suite à un changement de l'ordre des colonnes du fichier source, j'aimerais que ma macro exécute ces changements selon un mot-clé contenu dans la colonne (ici, ce sera l'en-tête de la colonne qui fera office de condition)
J'ai cherché un peu partout mais les seules discussions s'y rapprochant concernaient la simple permutation de colonnes, sans utilisation de condition/mot-clé...
Si quelqu'un peut m'aider, je suis preneur !
Merci d'avance !
PS : Voici mon code actuel, que je pourrais peut-être simplement améliorer pour insérer les critères directement !
Code:
Sub Gaz24_Permutation_Colonnes()
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Columns("C:C").Select
Selection.Cut
Columns("A:A").Select
ActiveSheet.Paste
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
'ID_Contrat en colonne A
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Columns("E:E").Select
Selection.Cut
Columns("B:B").Select
ActiveSheet.Paste
Columns("E:E").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
'Début_Période en colonne B
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Columns("F:F").Select
Selection.Cut
Columns("C:C").Select
ActiveSheet.Paste
Columns("F:F").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
'Fin_période en colonne C
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Columns("F:F").Select
Selection.Cut
Columns("D:D").Select
ActiveSheet.Paste
Columns("F:F").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
'ID_Statut en colonne D
'Type_Partenaire en colonne E
Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Columns("H:H").Select
Selection.Cut
Columns("F:F").Select
ActiveSheet.Paste
Columns("H:H").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
'Classe_Consommation en colonne F
End Sub