J'ai un code qui permet de transférer des données d'un fichier Excel vers un autre. Mon code est le suivant:
'Ouvre le fichier
Workbooks.Open FileName:= _
"C:\Fichier2.xls"
'affiche la feuille1
Sheets("feuille1").Activate
'transfère les données
With Workbooks("fichier1").Sheets("feuille1").Range("A1:A65536")
Set a = .Find(Ref.Text, LookAt:=xlWhole).Offset(0, 2)
Workbooks("fichier2").Sheets("feuille1").Range("C14").Value = a
Set b = .Find(Ref.Text, LookAt:=xlWhole).Offset(0, 1)
Workbooks("fichier2").Sheets("feuille1").Range("C15").Value = b
Set c = .Find(Ref.Text, LookAt:=xlWhole).Offset(0, 3)
Workbooks("fichier2").Sheets("feuille1").Range("H16").Value = c
...
Ref.text est une valeur qui est saisie dans le TextBox d'un UserForm, une fois validé cela lance le code précedant.
Mon problème est que le fichier1 contient 3 feuilles différentes pour lesquelles on pourait appliquer le même code, car elles ont la même feuille de destination dans le fichier2. De plus il possède une feuille de référence qui contient le nom de ces 3 feuilles.
J'ai chercher à attribuer à une variable le nom de ces 3 feuilles, sans succès, en faisant:
With Workbooks("fichier1").Sheets("feuille de rèf").Range("A1:A65536")
Set x = .Find(Ref.Text, LookAt:=xlWhole).Offset(0, 4)
End With
With Workbooks("fichier1").Sheets(x).Range("A1:A65536")
Set a = .Find(Ref.Text, LookAt:=xlWhole).Offset(0, 2)
...
Si quelqu'un aurait une suggestion je lui serait très reconnaisant,
Salut,
Le nom Du'une feuille peut être une chaine de caractere.
Dim NomFeuille As String
NomFeuile = "feuille de rèf"
With Workbooks("fichier1").Sheets(NomFeuille).Range("A1:A65536")
, ----
[code.aspx?ID=41455 By Renfield]
NOTE: Tu peux aussi accéder à une feuille par son idex dans la collection Worksheet.
Soit
With Workbooks("fichier1").Sheets(1).Range("A1:A65536")
représentera la premiere feuille dans la collection Wroksheets.