VBA - copier-coller une plage variable

Bonjour à tous !

Un premier post sur ce forum qui m'a déjà pas mal dépanné, et qui va le faire de nouveau j'espère !

Voilà mon problème :

J'ai besoin de copier des données situées sur une feuille operateur.xlsx (la liste des opérateurs est située sur mon classeur actif), colonne coldate à coldate+13.

J'ai cherché à faire cette étape de copier-coller via un range(plage).copy comme dans le code suivant, qui ne fonctionne pas :

Sub étape3_2()

Dim operateur As String
Dim l As Integer
Dim o As Integer
Dim coldate As Integer
Dim plage As Range

l = Sheets("données").Range("A" & Rows.Count).End(xlUp).Row
coldate = Sheets("récap semaine").Range("B2").Value
Set plage = Range(Columns(coldate), Columns(coldate + 13))

For o = 2 To l
    operateur = Sheets("données").Range("A" & o)
    Workbooks(operateur & ".xlsx").Sheets("Feuil1").Range(plage).Copy _
    Destination:=ThisWorkbook.Sheets(operateur).Range("A1")
Next

End Sub

En revanche, si je tape range("A:N") par exemple, aucun problème ... donc mes adressages et autres variables sont bons.

J'ai testé les adresses suivantes pour ma plage source, qui ne fonctionnent pas :

range(cells(1,coldate), cells(61,coldate+13))
range(cells(1,155),cells(61,168))

ou des choses comme ça (pour info, je n'ai pas particulièrement besoin des colonnes coldate à coldate+13 en entier, surtout les lignes 1 à 61 de ces colonnes (mais ça me paraissait moins lourd de bosser sur la totalité des colonnes ...)).

Je peux toujours chercher à convertir mon numéro de colonne en la lettre qui correspond et écrire quelque chose du genre

range(lettrecoldate & ":" & lettrecoldate+13)

qui fonctionne, mais ça me parait un peu lourd ...

D'autres idées ?

Merci d'avoir tenu jusqu'au bout de ce roman et merci d'avance !

amop

AMOP,

Une idée : donner un nom à la "plage variable" (par ex "NomPlage") dans le classeur et la récupérer dans le code de la façon suivante :

set range = thisworkbook.Names("NomPlage").ReferstoRange

Hello Gvialles !

Désolé pour le retard à te répondre mais je suis de retour au bureau aujourd'hui et j'ai pu tester ta proposition qui marche nickel et qui est bien plus légère à mettre en oeuvre

merci pour ta réponse !

Rechercher des sujets similaires à "vba copier coller plage variable"