Récupérer une donnée dans une inputbox
Résolu
lana
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je cherche une méthode qui permet de récupérer le nom d'un fichier excel entré par un utilisateur via une inputbox pour ensuite l'appliquer automatiquement dans mes macros.
Voici ce que j'ai fait pour le moment:
Sub Ouvrir()
Dim fichier
fichier = InputBox("Entrez le nom du fichier")
ChDir "d:\Documents and Settings\docs infos"
Workbooks.Open Filename:=fichier
Workbooks(" & fichier.xls").Worksheets("Données Gr").Range("A1").EntireRow.Copy Workbooks("Essai.xls").Worksheets("Feuil1").Range("A1")
end sub
Mais cela ne fonctionne pas. Est-ce que quelqu'un sait comment faire pour appliquer la valeur de ma variable "fichier" dans mes macros sans avoir à la reécrire manuellement?
Merci ^^
Je cherche une méthode qui permet de récupérer le nom d'un fichier excel entré par un utilisateur via une inputbox pour ensuite l'appliquer automatiquement dans mes macros.
Voici ce que j'ai fait pour le moment:
Sub Ouvrir()
Dim fichier
fichier = InputBox("Entrez le nom du fichier")
ChDir "d:\Documents and Settings\docs infos"
Workbooks.Open Filename:=fichier
Workbooks(" & fichier.xls").Worksheets("Données Gr").Range("A1").EntireRow.Copy Workbooks("Essai.xls").Worksheets("Feuil1").Range("A1")
end sub
Mais cela ne fonctionne pas. Est-ce que quelqu'un sait comment faire pour appliquer la valeur de ma variable "fichier" dans mes macros sans avoir à la reécrire manuellement?
Merci ^^
1 réponse
-
Bonjour,
Peut être comme ceci :Workbooks(fichier).Worksheets("Données Gr").Range("A1").EntireRow.Copy Workbooks("Essai.xls").Worksheets("Feuil1").Range("A1")-
-
Sais-tu pourquoi? Etant personnellement devin, proche de Nostradamus, je pense que si cela ne fonctionne pas, c'est qu'il y a une erreur...
Personnellement, lorsque je dois faire ouvrir un fichier par une macro, je procède comme ceci :Sub Ouvrir() Dim Fichier As String Fichier = Application.GetOpenFilename(FileFilter:="(*.*),*.*" _ , Title:="Sélectionnez le fichier") If Fichier = "Faux" Then 'pas de sélection faite Exit Sub End If Workbooks.Open Filename:=Fichier Fichier = ActiveWorkbook.Name Workbooks(Fichier).Worksheets("Données Gr").Range("A1").EntireRow.Copy Workbooks("Essai.xls").Worksheets("Feuil1").Range("A1") end sub
Merci à Lermitte222 pour cette astuce -
T'en as de la chance d'être presque aussi fort que Nostradamus. Heureusement que tu m'en fais part également, je n'aurais pas pensé qu'il y avait une erreur..
J'obtiens le message d'erreur (l'indice n'appartient pas à la sélection) en écrivant ceci:
Option Explicit
Public fichier As String
Sub Ouvrir()
Dim ChDir As String
ChDir = "d:\Documents and Settings\docs infos\"
fichier = InputBox("Entrez le nom du fichier", "Téléchargement des données")
If fichier = "" Then Exit Sub
On Error GoTo NonTrouve
Workbooks.Open ChDir & fichier & ".xls"
Exit Sub
NonTrouve:
MsgBox "Fichier:" & fichier & ".xls non trouvé dans: " & ChDir
fichier = ActiveWorkbook.Name
Workbooks(fichier).Worksheets("Données Gr").Range("A1").EntireRow.Copy Workbooks("Essai.xls").Worksheets("Feuil1").Range("A1")
End Sub
il me surligne en jaune la procédure de copie de la ligne.
j'ai aussi essayé avec workbooks( fichier & ".xls") mais ça ne va pas non plus..
Merci en tout cas pour ton aide pijaku :) -
ouplala!!!! C'est quoi ça : Dim ChDir As String ?????
Ma macro ne te convenait pas?
l'indice n'appartient pas à la sélection signifie qu'il n'arrive pas à atteindre soit le classeur, soit la feuille soit le range concerné...
Ta macro est sens dessus dessous...Option Explicit Public fichier As String Sub Ouvrir() Dim ChDir As String '????????????????????????????????? ChDir = "d:\Documents and Settings\docs infos\" fichier = InputBox("Entrez le nom du fichier", "Téléchargement des données") If fichier = "" Then Exit Sub On Error GoTo NonTrouve Workbooks.Open ChDir & fichier & ".xls" 'tu ouvres le fichier et............ Exit Sub '..... tu quittes la macro?????? NonTrouve: 'par contre ici tu ne trouves pas le fichier MsgBox "Fichier:" & fichier & ".xls non trouvé dans: " & ChDir fichier = ActiveWorkbook.Name 'mais tu lui attribue un nom Workbooks(fichier).Worksheets("Données Gr").Range("A1").EntireRow.Copy Workbooks("Essai.xls").Worksheets("Feuil1").Range("A1") End Sub
je t'ai mis des commentaires dans ton code.
En fait, ta macro n'effectue la copie de ligne que dans le cas ou le fichier n'a pas été trouvé...... Marche pas? Ah bon? Si vraiment ma macro te gène, essaie celle ci :Option Explicit Public fichier As String Sub Ouvrir() Dim chemin As String chemin = "D:\Documents and Settings\docs infos\" ChDir chemin fichier = InputBox("Entrez le nom du fichier", "Téléchargement des données") If fichier = "" Then Exit Sub On Error GoTo NonTrouve Workbooks.Open fichier & ".xls" fichier = ActiveWorkbook.Name Workbooks(fichier).Worksheets("Données Gr").Range("A1").EntireRow.Copy Workbooks("Essai.xls").Worksheets("Feuil1").Range("A1") Exit Sub NonTrouve: MsgBox "Fichier:" & fichier & ".xls non trouvé dans: " & chemin End Sub -
-