Nom de feuille excel variable

Résolu
Sdbswiss Messages postés 11 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 12 septembre 2007 - 12 sept. 2007 à 12:20
Sdbswiss Messages postés 11 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 12 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,

Swiss

Qui fait l'ange, fait la bête!

2 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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.

Voila j'espere que cela t'aide

@+: Ju£i?n
Pensez: Réponse acceptée
3
Sdbswiss Messages postés 11 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 12 septembre 2007
12 sept. 2007 à 13:42
Merci Ju£i?n,

En fait j'avais juste oblier de déclarer ma variable.
C'est en voyant ton code que je l'ai réalisé...

Merci pour ton aide,

Swiss

Qui fait l'ange, fait la bête!
0
Rejoignez-nous