Remplacer le nom du fichier et de la feuille dans du VBA

bonjour

dans ma ligne de de vba je souhaite faire référence à 2 cellules une pour le fichier et l'autre pour la feuille

j'ai essayé d'écrire ça et bien sur ça bug et je ne comprends pas pourquoi

nom_fichier = Range("g1").Value
nom_feuille = Range("h1").Value

Do While Workbooks(" & nom fichier & .xlt").Sheets(" & mon_feuille &").Cells(ligne1, 1).Value <> ""

si joint le fichier.

merci de votre aide par avance.

philippe

Bonjour,

Justement on souhaiterait avoir une explication de ce que vous souhaitez écrire ?

Pour commencer depuis le début :

1) Votre macro commence par l'ouverture d'un fichier nom_fichier & "xlt" .... celà m'étonnerai fort si nom de fichier est justement la variable cherchée en dessous.

2) nom_fichier = Range("g1").Value
nom_feuille = Range("h1").Value

3 ) Celà m'a l'air dans le désordre. quand à la fin si votre "linge"=ligne + 1 bon ménage.

4 ) On ne met pas de guillemets devant une variable ; sinon elle est lu comme du texte " & nom fichier & .xlt" = & nom fichier & .xlt qui ne veut rien dire.

en plus votre variable c'est : nom_fichier et pas : nom fichier idem nom_feuille et pas mon_feuille

il faut un minimum de relecture .

Do While Workbooks(nom_fichier & ".xlt").Sheets(nom_feuille).Cells(ligne1, 1).Value <> ""

Une ligne avec les corrections celà fera un modèle pour les autres lignes.

normalement la ligne de vba est écrite comme ça :

Do While Workbooks("202010Mouvements").Sheets("octobre").Cells(ligne1, 1).Value <> ""

comme le fichier est pour mes collègues et qu'ils n'ont pas de connaissance en vba, je voudrais éviter qu'il aille corriger le nom du fichier et de la feuille dans le vba

c'est pour cela que j'ai indiqué le nom du fichier dans la cellule G1 et la feuille H1

donc j'ai essayé ça mais ça bug.

Do While Workbooks(" & nom fichier & .xlt").Sheets(" & mon_feuille &").Cells(ligne1, 1).Value <> ""

merci de votre aide

bonjour

après la pose déjeuner j'ai trouvé la solution:

Do While Workbooks("" & nom_fichier1 & ".xlt").Sheets("" & nom_feuille1 & "").Cells(ligne3, 1).Value <> ""

Pour info Vos deux premiers guillemets ne servent à rien : çà veut dire vide !

Idem pour la Feuille : Sheets("" & nom_feuille1 & "") = Sheets(nom_feuille1)

Celà revient à écrire ce que je vous avez donné :

Par contre ligne3 ne faisait pas parti des variable de votre fichier test et çà ne change rien au problème d'ouverture du fichier qui doit se trouver aprés la déclaration des variables pas avant. 
Rechercher des sujets similaires à "remplacer nom fichier feuille vba"