Boucle vba qui ouvre fichier nom variable
Résolu
Gui750
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Vba : ouvrir un fichier excel avec nom variable
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment ouvrir un fichier 7z - Guide
6 réponses
Ce serait plutôt quelque chose comme :
A condition que la fichier soit dans la racine de Z: (car il faut le nom complet pour ouvrir le fichier)
Cordialement
Patrice
For Each feuille In Worksheets Workbooks.Open Filename:= "Z:\" & Feuille.Range("A1").value & ".xls" Next feuille
A condition que la fichier soit dans la racine de Z: (car il faut le nom complet pour ouvrir le fichier)
Cordialement
Patrice
Bonjour,
1) Je ne t'ai pas proposé d'utiliser selection.value car il n'est pas nécessaire de sélectionner quoi que ce soit pour faire ce que tu veux, par contre cela pourrait être une cause d'erreur.
2) «je souhaiterai fermer la feuille», on ne peut pas fermer une feuille, je suppose que tu veux fermer le classeur qui contient la macro sans l'enregistrer :
ThisWorkbook.Saved = True
ThisWorkbook.Close
Cordialement
Patrice
1) Je ne t'ai pas proposé d'utiliser selection.value car il n'est pas nécessaire de sélectionner quoi que ce soit pour faire ce que tu veux, par contre cela pourrait être une cause d'erreur.
2) «je souhaiterai fermer la feuille», on ne peut pas fermer une feuille, je suppose que tu veux fermer le classeur qui contient la macro sans l'enregistrer :
ThisWorkbook.Saved = True
ThisWorkbook.Close
Cordialement
Patrice
Re,
Je ne vois pas trop ce que tu veux.
En VBA, il faut utiliser select avec parcimonie, une bonne méthode consiste à utiliser des objets.
Tant que je suis dans les conseils, une excellente habitude consiste à commencer chaque module par Option Explicit, ce qui oblige à déclarer chaque variable utilisée.
Si tu veux travailler sur le fichier qui contient la macro, c'est l'objet ThisWorkbook.
Pour travailler sur le classeur que tu viens d'ouvrir :
Au début de la procédure, déclare :
Je ne vois pas trop ce que tu veux.
En VBA, il faut utiliser select avec parcimonie, une bonne méthode consiste à utiliser des objets.
Tant que je suis dans les conseils, une excellente habitude consiste à commencer chaque module par Option Explicit, ce qui oblige à déclarer chaque variable utilisée.
Si tu veux travailler sur le fichier qui contient la macro, c'est l'objet ThisWorkbook.
Pour travailler sur le classeur que tu viens d'ouvrir :
Au début de la procédure, déclare :
Dim wbk As WorkbookPuis affecte le classeur ouvert à l'objet wbk avec :
Set wbk = Workbooks.Open(Filename:=NomCompletDuFichier)tu pourras ensuite utiliser l'objet wbk pour travailler dessus, par exemple :
wbk.Worksheets(1).Range("A1").Value = "Test"(pas besoin d'utiliser select)
Merci Patrice !
Je me suis rendu compte que
Workbooks.Open Filename:= "Z:\" & selection.value & ".xls"
fonctionne aussi.
Par contre j'ai une deuxième question dans la foulée.
A la fin de ma boucle je souhaiterai fermer la feuille en question et la procédure :
Range'("A1" ).select
Windows(" & Selection.Value & " ).Close
ne fonctionne pas.
tu aurais une idée par hasard ?
Merci
Guillaume
Je me suis rendu compte que
Workbooks.Open Filename:= "Z:\" & selection.value & ".xls"
fonctionne aussi.
Par contre j'ai une deuxième question dans la foulée.
A la fin de ma boucle je souhaiterai fermer la feuille en question et la procédure :
Range'("A1" ).select
Windows(" & Selection.Value & " ).Close
ne fonctionne pas.
tu aurais une idée par hasard ?
Merci
Guillaume
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci bcp,
Oui effectivement select n'est pas indispensable, je l'ai enlevé. J'avais bricollé ça pour que ça fonctionne mais je n'ai pas un gros niveau en vba.
En ce qui concerne ma seconde question, je m'exprime mal. en effet c'est le classeur que je veux fermer.
La ou je bloque en fait, c'est pour le selectionner. Dans le cadre de ma boucle, je passe sur un autre classeur.
Windows("Classeur mère.xls").Activate
et je souhaiterai "repasser" sur le classeur avec nom variable pour pouvoir utiliser la commande pour pouvoir ensuite mettre le code que tu me proposes.
Tu vois ce que je veux dire ?
Merci
Oui effectivement select n'est pas indispensable, je l'ai enlevé. J'avais bricollé ça pour que ça fonctionne mais je n'ai pas un gros niveau en vba.
En ce qui concerne ma seconde question, je m'exprime mal. en effet c'est le classeur que je veux fermer.
La ou je bloque en fait, c'est pour le selectionner. Dans le cadre de ma boucle, je passe sur un autre classeur.
Windows("Classeur mère.xls").Activate
et je souhaiterai "repasser" sur le classeur avec nom variable pour pouvoir utiliser la commande pour pouvoir ensuite mettre le code que tu me proposes.
Tu vois ce que je veux dire ?
Merci