Pbl pour déplacer colonne suivant variable dans une cellule

spyderdvd

XLDnaute Nouveau
Bonjour à tous,

je viens vers vous car je ne suis un novice dans le langage VBA et là j'ai beau essayer je n'y arrive pas.

Voici ma problématique j'ai un fichier Excel avec des colonnes nommées de manières différentes sur la ligne 7.
Malheureusement pour moi, suivant mes extraction ces colonnes ne sont pas forcément à la même place mais elles gardent toutes le même nom.

Je cherche donc une macro qui ferait
Si sur la ligne 7 le nom = Libelle UI alors coupe la colonne (contenant Libelle UI sur la ligne 7) et l'insérer en 1ère
Si sur la ligne 7 le nom = circuit alors coupe la colonne (contenant circuit sur la ligne 7 ) et l'insérer en 2ém
Si sur la ligne 7 le nom = route alors coupe la colonne (contenant route sur la ligne 7) et l'insérer en 3ém

Comme cela je pourrais avoir mes colonnes Libelle UI en 1er , circuit toujours en 2ème, route toujours en 3ème.

Merci pour votre aide
 

Pièces jointes

  • essai colon.xls
    46.5 KB · Affichages: 20

Oranger

XLDnaute Occasionnel
Bonjour SpyderDvd,

Voici une proposition de solution afin de déplacer les colonnes pour que tu aies "Libelle UI" en 1er , "circuit" toujours en 2ème, "route" toujours en 3ème.

Cdlt,

Oranger
 

Pièces jointes

  • essai colon.xlsm
    33.2 KB · Affichages: 17

spyderdvd

XLDnaute Nouveau
Merci Oranger, effectivement ça marche et je n'aurais jamais pu trouver cela tout seul.
Par contre quand je recopie la macro nommer main dans une macro 1 et que je la lance, rien ne se produit ?
J'ai refais le test sur ton fichier réponse (sans être passer par le bouton gris) et rien ne se produit,
pourtant dès que j'appuis à nouveau sur le bouton gris qui appelle main ça fonctionne ?
J'ai mis mon copier/Coller dans le fichier text, ai-je fais une mauvaise manip ?
ou y a-t-il une autre manip à faire ?
 

Pièces jointes

  • macro main.txt
    1.9 KB · Affichages: 12

Oranger

XLDnaute Occasionnel
Bonjour,

La macro "main" est lié au bouton via la feuille "Feuil1" ->Export TPO grâce à l'instruction ci-dessous. Donc si tu changes le nom de la macro il faut aussi changer le nom dans feuil1 et mettre "Call Macro1" au lieu de Call "main"

Private Sub CommandButton1_Click()
Call main
End Sub

Cdlt,

Oranger
 

job75

XLDnaute Barbatruc
Bonjour spyderdvd, Oranger,

Fichier joint avec cette macro très simple :
Code:
Sub Tri_Horizontal()
Application.ScreenUpdating = False
On Error Resume Next 'si une recherche n'aboutit pas
With [A7].CurrentRegion
    .Rows(1).Find("Libelle UI", , xlValues, xlWhole).Offset(-1) = 1
    .Rows(1).Find("circuit").Offset(-1) = 2
    .Rows(1).Find("route").Offset(-1) = 3
    Union(.Rows(0), .Cells).Sort .Rows(0), xlAscending, Orientation:=2 'tri horizontal
    .Rows(0) = ""
End With
End Sub
A+
 

Pièces jointes

  • essai colon(1).xls
    96 KB · Affichages: 14

job75

XLDnaute Barbatruc
Bonjour spyderdvd, le forum,

Une variante dans ce fichier (2) qui utilise la 1ère ligne sous le tableau :
Code:
Sub Tri_Horizontal()
'se lance par les touches Ctrl+T
Application.ScreenUpdating = False
On Error Resume Next 'si une recherche n'aboutit pas
With [A1].CurrentRegion
    .Rows(1).Find("Libelle UI", , xlValues, xlWhole).Offset(.Rows.Count) = 1
    .Rows(1).Find("circuit").Offset(.Rows.Count) = 2
    .Rows(1).Find("route").Offset(.Rows.Count) = 3
    Union(.Rows(.Rows.Count + 1), .Cells).Sort .Rows(.Rows.Count + 1), xlAscending, Orientation:=2 'tri horizontal
    .Rows(.Rows.Count + 1) = ""
End With
End Sub
A+
 

Pièces jointes

  • essai colon(2).xls
    92.5 KB · Affichages: 9

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 132
Membres
103 127
dernier inscrit
willwebdesign