Récupérer une donnée dans une inputbox
Résolu
lana
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
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 ^^
A voir également:
- Récupérer une donnée dans une inputbox
- Comment recuperer une video sur youtube - Guide
- Recuperer une conversation whatsapp supprimée - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Recuperer le son d'une video - Guide
- Récupérer mon compte facebook désactivé - Guide
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 subMerci à Lermitte222 pour cette astuce
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 :)
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 Subje 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 Subbon week end