Recherche de macro pour ouverture fichier
Résolu
Inguyone
-
Inguyone Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Inguyone Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis novice et j'ai enregistré une macro qui à partir d'une base de donnée de noms me permet d'aller chercher et ouvrir un fichier correspondant au nom de cette personne.
Sub Macro1()
ChDir "C:\Users\Pat\Documents\Test\Patrick"
Workbooks.Open Filename:= _
"C:\Users\Pat\Documents\Test\Patrick\Data.xls"
End Sub
Le problème est que pour chaques noms, je dois créer une macro et de plus je ne peux plus ranger mes données par ordre alpha.
Je voudrais, à partir d'une cellule unique, pouvoir faire une recherche en introduisant un nom dans cette cellule et qu'une macro me permette d'ouvrir le fichier correspondant à partir de cette base de données.
Merci pour votre aide
Je suis novice et j'ai enregistré une macro qui à partir d'une base de donnée de noms me permet d'aller chercher et ouvrir un fichier correspondant au nom de cette personne.
Sub Macro1()
ChDir "C:\Users\Pat\Documents\Test\Patrick"
Workbooks.Open Filename:= _
"C:\Users\Pat\Documents\Test\Patrick\Data.xls"
End Sub
Le problème est que pour chaques noms, je dois créer une macro et de plus je ne peux plus ranger mes données par ordre alpha.
Je voudrais, à partir d'une cellule unique, pouvoir faire une recherche en introduisant un nom dans cette cellule et qu'une macro me permette d'ouvrir le fichier correspondant à partir de cette base de données.
Merci pour votre aide
A voir également:
- Recherche de macro pour ouverture fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Salut
Note que les arguments que tu donnes à tes instructions chdir et Open sont des chaînes de caractères.
En règle générale, là où on peut mettre une chaîne de caractères, on peut mettre une variable chaîne de caractères et plus généralement une expression chaîne de caractères.
exemples d'expression chaîne de caractères :
* "C:\Users\Pat\Documents\Test\Patrick\Data.xls"
* monNom (après avoir fait monNom = "fiu")
* "Salut " & monNom (si monNom contient "fiu", le résultat sera "Salut fiu")
* "Salut" & monNom & ", comment vas-tu ?"
Si l'on cherche à se rapprocher de ton pb: si une variable Nom contient le nom d'une personne, alors l'expression "C:\Users\Pat\Documents\Test\" & Nom & "\Data.xls" contiendra l'argument dont tu as besoin.
La cerise sur le gateau : si la Cellule C9 contient "fiu", la fonction Cells(9, 3) te donnera "fiu" (Cells n'est pas vraiment une expression chaîne de caractères, mais là, elle en joue le rôle)
Finalement, si Macro1 contient
SUB Macro1()
Nom = Cells(9, 3)
nomDuFichier = "C:\Users\Pat\Documents\Test\" & Nom & "\Data.xls"
Workbooks.Open Filename:= nomDuFichier
END SUB
tu auras enfin une macro "configurable" par la cellule C9
... et tu peux simplifier en disant
nomDuFichier = "C:\Users\Pat\Documents\Test\" & Cells(9, 3) & "\Data.xls" là, tu n'as plus besoin de la variable Nom
... voire plus en faisant
Workbooks.Open Filename:= "C:\Users\Pat\Documents\Test\" & Cells(9, 3) & "\Data.xls" et là tu n'as plus besoin de nomDuFichier
nb: comme je suis pas un Kador en Excel, vérifie que C9 est bien récupéré par Cells(9, 3)... des fois que ce soit Cells(3, 9)
ps: t'es pas dans le bon forum, ton pb relève soit de bureautique soit de programmation.
Note que les arguments que tu donnes à tes instructions chdir et Open sont des chaînes de caractères.
En règle générale, là où on peut mettre une chaîne de caractères, on peut mettre une variable chaîne de caractères et plus généralement une expression chaîne de caractères.
exemples d'expression chaîne de caractères :
* "C:\Users\Pat\Documents\Test\Patrick\Data.xls"
* monNom (après avoir fait monNom = "fiu")
* "Salut " & monNom (si monNom contient "fiu", le résultat sera "Salut fiu")
* "Salut" & monNom & ", comment vas-tu ?"
Si l'on cherche à se rapprocher de ton pb: si une variable Nom contient le nom d'une personne, alors l'expression "C:\Users\Pat\Documents\Test\" & Nom & "\Data.xls" contiendra l'argument dont tu as besoin.
La cerise sur le gateau : si la Cellule C9 contient "fiu", la fonction Cells(9, 3) te donnera "fiu" (Cells n'est pas vraiment une expression chaîne de caractères, mais là, elle en joue le rôle)
Finalement, si Macro1 contient
SUB Macro1()
Nom = Cells(9, 3)
nomDuFichier = "C:\Users\Pat\Documents\Test\" & Nom & "\Data.xls"
Workbooks.Open Filename:= nomDuFichier
END SUB
tu auras enfin une macro "configurable" par la cellule C9
... et tu peux simplifier en disant
nomDuFichier = "C:\Users\Pat\Documents\Test\" & Cells(9, 3) & "\Data.xls" là, tu n'as plus besoin de la variable Nom
... voire plus en faisant
Workbooks.Open Filename:= "C:\Users\Pat\Documents\Test\" & Cells(9, 3) & "\Data.xls" et là tu n'as plus besoin de nomDuFichier
nb: comme je suis pas un Kador en Excel, vérifie que C9 est bien récupéré par Cells(9, 3)... des fois que ce soit Cells(3, 9)
ps: t'es pas dans le bon forum, ton pb relève soit de bureautique soit de programmation.
Merci pour ces renseignements précieux, je vais essayé cette solution. Et sorry pour l'emplacement de mon message, ceci est une première pour moi. Bonne journée
Super cela fonctionne et je t'en remercie.
Bonne journée