[VBA] changer l'ordre des colonnes

swan

XLDnaute Junior
Bonjour,

voilà mon travail: j'ai un fichier de données avec plusieurs colonnes pour lesquelles je dois les ranger dans le bon ordre.
Par exemple, je reçois un fichier où le nom des colonnes sont dans cet ordre:

hh jj | aa dd | bb ee | gg ii | ff cc

je voudrais pouvoir utiliser une macro qui me range automatiquement les colonnes dans cet ordre:

aa dd | bb ee | ff cc | gg ii | hh jj


bien évidemment, je ne connais pas l'emplacement des colonnes.
Donc il faudrait une macro qui détecte sur toute la ligne A de 1 à n, d'abord la chaîne de caractères aa pour mettre
la colonne "aa dd" dans la première colonne puis détecte bb pour mettre la colonne "bb ee" dans la 2e, etc...

j'espère que je suis clair.

j'ai pensé que le code pourrait commencer de cette manière:

Dim i As Long
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row -->sauf que ça c'est un décompte sur toute une colonne
If InStr(Cells("A", i), "aa")
Then "placer dans la 1ere colonne"
...
 

tototiti2008

XLDnaute Barbatruc
Re : [VBA] changer l'ordre des colonnes

Bonjour swan,

Est-ce un hasard ou tu veux les classer dans l'ordre alphabétique ?
Si c'est le cas, sélectionne ta liste,
Menu Données - Trier
Bouton Options
coche De la gauche vers la droite
Ok
Choisis la ligne sur laquelle trier (ta ligne de titres)
Ok
 

swan

XLDnaute Junior
Re : [VBA] changer l'ordre des colonnes

ah non ce n'est pas du tout par ordre alphabétique, désolé pour ce cas particulier. Dans mon vrai fichier c'est des mots à la place mais pour simplifier dans cet exemple, j'ai mis des lettres.
 

swan

XLDnaute Junior
Re : [VBA] changer l'ordre des colonnes

Bonjour Boisgontier, j'ai pas très bien compris comment marche ton idée...

Mais j'ai pensé à autre chose:
l'utilisateur peut se servir de 2 listes déroulantes:

la 1ere:

choix de la colonne:
colonne A
colonne B
colonne C
colonne D

la 2e:

déplacer dans la:
colonne A
colonne B
colonne C
colonne D

ça me parait une bonne idée. Mais si vous avez la solution à mon premier post, ce serait excellent!
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : [VBA] changer l'ordre des colonnes

Mon idée:

-En colonnes J:N (ou sur une autre feuile) des listes Données/Validation permettent de choisir la colonne
-Avec le filtre élaboré, on extrait les données correspondantes.

JB
 

Pièces jointes

  • FiltreCol.xls
    20.5 KB · Affichages: 253
  • FiltreCol.xls
    20.5 KB · Affichages: 249
  • FiltreCol.xls
    20.5 KB · Affichages: 271

Discussions similaires

Réponses
22
Affichages
955

Statistiques des forums

Discussions
312 938
Messages
2 093 772
Membres
105 816
dernier inscrit
TASTET B