Nom de feuille excel variable [Résolu]

Signaler
Messages postés
11
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 septembre 2007
-
Messages postés
11
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 septembre 2007
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
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
Messages postés
11
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
12 septembre 2007

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!