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