Sdbswiss
Messages postés11Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention12 septembre 2007
-
12 sept. 2007 à 12:20
Sdbswiss
Messages postés11Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention12 septembre 2007
-
12 sept. 2007 à 13:42
Bonjour à tous,
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,
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 sept. 2007 à 12:31
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.