Commande VBA de mise en forme de tableau

ramirez

XLDnaute Nouveau
Bonjour tout le monde,

Je n'arrive pas à trouver la commande VBA pour déplacer une colonne dans un tableau après une extraction depuis SAP, je n'ai pas vu de conversation a ce propos me semble-t-il.


Par exemple j'aimerais classer les colonnes

Colonne A en position 2
Colonne B en 3
Colonne C en 1

Merci d'avance, je ne suis pas encore bien à l'aise avec VBA
 

ramirez

XLDnaute Nouveau
Re : Commande VBA de mise en forme de tableau

Bonjour Robert,

Merci pour la réponse,

J'en était arrivé à cette solution mais j'aurais voulu savoir si il existait un ligne de commande qui pouvait directement attribuer une place à une colonne.

Ma formule est celle-ci pour le fichier originel

Sub Macro2()
Attribute Macro2.VB_ProcData.VB_Invoke_Func = " \n14"
'
' Macro2 Macro
'

'
Columns("E:E").Select
Selection.Cut
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Columns("G:G").Select
Selection.Cut
Columns("E:E").Select
Selection.Insert Shift:=xlToRight
Columns("V:V").Select
Selection.Cut
Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Columns("X:AB").Select
Selection.Cut
Columns("G:G").Select
Selection.Insert Shift:=xlToRight
Columns("AC:AC").Select
Selection.Cut
Columns("L:L").Select
Selection.Insert Shift:=xlToRight
Columns("AD:AD").Select
Selection.Cut
Columns("M:M").Select
Selection.Insert Shift:=xlToRight
Columns("P:p").Select
Selection.Copy
Application.CutCopyMode = False
Selection.Cut
Columns("N:N").Select
Selection.Insert Shift:=xlToRight
ActiveWindow.SmallScroll ToRight:=2
Columns("AG:AG").Select
Selection.Cut
Columns("O:O").Select
Selection.Insert Shift:=xlToRight
Columns("S:S").Select
Selection.Cut
Columns("P:p").Select
Selection.Insert Shift:=xlToRight
End Sub

Merci,
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Commande VBA de mise en forme de tableau

Bonjour Ramirez, bonjour le forum,

Si tu veux quelque chose de plus souple, regarde le fichier en pièce jointe avec une UserForm. Tu choisis la colonne dans la ComboBox puis sa position dans la TextBox. Tu valides...
Le code :

Code:
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim I As Integer 'déclare la variable I (Incrément)

For I = 1 To Application.Columns.Count 'boucle sur toute les colonnes
    Me.ComboBox1.AddItem Split(Cells(1, I).Address, "$")(1) 'ajoute le numéro de colonne (Format Lettre)
Next I 'prochaine colonne de la boucle
End Sub


Private Sub CommandButton1_Click() 'bouton "Valider"
If Me.ComboBox1.Value = "" Or Me.TextBox1.Value = "" Then MsgBox "Donnée manquante": Exit Sub 'si l'un des deux champs n'est pas renseigné, message, sort de la procédure
If CInt(Me.ComboBox1.ListIndex + 1) = CInt(Me.TextBox1.Value) Then Exit Sub 'si les deux colonnes sont identiques, sort de la procédure
Columns(CInt(Me.ComboBox1.ListIndex + 1)).Cut 'coupe la colonne renseignée dans la ComboBox1
Columns(CInt(Me.TextBox1.Value)).Insert Shift:=xlToRight 'la déplace dans la position renseignée dans la TextBox1
End Sub


Private Sub CommandButton2_Click()
Unload Me 'vide et ferme l'UserForm
End Sub
Le fichier :
 

Pièces jointes

  • Ramirez_v01.xlsm
    15.9 KB · Affichages: 26

Statistiques des forums

Discussions
312 326
Messages
2 087 311
Membres
103 513
dernier inscrit
adel.01.01.80.19