VBA - Permutation ordre colonne selon mot-clé

Antoine_F

XLDnaute Nouveau
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é... :confused:

Si quelqu'un peut m'aider, je suis preneur ! :p

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
 

VDAVID

XLDnaute Impliqué
Re : VBA - Permutation ordre colonne selon mot-clé

Bonjour Antoine_F, phlaurent55,

Si j'ai bien compris, (Difficile sans document exemple, fortement recommandé comme l'a dit phlaurent55) un test en pièce jointes.
Ma proposition fonctionne par mots-clés et leurs correspondances que tu as en feuil2. En fonction de ces mots-clés, la macro permute les colonnes.

Bonne journée

EDIT: Correction du nom des feuilles dans la macro, ajustement du nombre de mots clés possibles
 

Pièces jointes

  • Testcolonnes inversées.xls
    33.5 KB · Affichages: 226
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 343
Membres
103 525
dernier inscrit
gbaipc