Office 365 Copier coller collonne d'un tableau selon une liste

VazyFrancko

XLDnaute Nouveau
Bonjour,
Dans le code ci-dessous, on copie-colle les colonnes d'un tableau qui ont pour nom "Entete 2", "Entete 3" et "Entete 5".
Je cherche à l'adapter pour copier-coller les colonnes qui ont pour nom les cellules de B2 à J2 (voire plus). Il faudrait que ce soit dynamique.
Pourriez-vous m'aider svp?
Merci bcp

VB:
Sub CopieCol()

Dim i&, j&, a(), Ws As Worksheet

a = Array("Entete 2", "Entete 3", "Entete 5")

Set Ws = Sheets("Obligations")

j = 1

ReDim td(UBound(a))

For i = 0 To UBound(a)

  If Not IsError(Application.Match(a(i), Rows(1), 0)) Then

    Columns(Application.Match(a(i), Rows(1), 0)).Copy Ws.Columns(j)

    j = j + 1

  End If

Next

Sheets(Ws.Name).Move After:=Sheets(Sheets.Count)

End Sub
 

Fichiers joints

Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Je cherche à l'adapter pour copier-coller les colonnes qui ont pour nom les cellules de B2 à J2 (voire plus). Il faudrait que ce soit dynamique.
NB: je n'ai pas pris le nom, mais le numéro de colonne que l'on souhaite recopier.
Un truc dans ce genre là
(à tester en étant sur la feuille 1 quand on lance les deux macros de test)
VB:
Sub test_A()
copiecoll Sheets("Obligations"), 1, 3, 5, 7
End Sub
Sub test_B()
copiecoll Sheets("Obligations"), 2, 4, 6
End Sub
Private Sub copiecoll(ws As Worksheet, ParamArray col())
Dim i&, j&
ws.Cells.ClearContents
j = 1
For i = 0 To UBound(col)
Columns(col(i)).Copy ws.Columns(j)
j = j + 1
Next
End Sub
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas