MrZurg12
Messages postés15Date d'inscriptionmardi 29 mai 2012StatutMembreDernière intervention20 juillet 2012
-
31 mai 2012 à 11:12
MrZurg12
Messages postés15Date d'inscriptionmardi 29 mai 2012StatutMembreDernière intervention20 juillet 2012
-
1 juin 2012 à 11:40
Bien le bonjour !
Je me tourne vers vous en cette belle matinée car j'ai besoin d'aide. J'ai trouvé une fonction qui me permet de "parcourir" le disque dur pour que l'utilisateur sélectionne un fichier; cette fonction utilise FileDialog. La voici :
Public Function DialogueFichiers() As String
DialogueFichiers = ""
Dim fd As FileDialog
'Crée une boite de dialogue de sélection de fichiers :
Set fd = Application.FileDialog(msoFileDialogFilePicker)
dialog_show:
fd.Show
'limite la sélection à un fichier
If fd.SelectedItems.Count > 1 Then GoTo dialog_show
DialogueFichiers = fd.SelectedItems(1)
Set fd = Nothing
End Function
Du coup, dans ma procédure, j'utilise le chemin donné par la fonction pour ouvrir le fichier. Mais ce que j'aimerai, après avoir ouvert le fichier, c'est récupérer juste le nom de mon fichier (monfichier.xlsx) afin de le mettre dans une variable, et pouvoir récupérer des données et les coller dans mon fichier actuel. Voila mon code
Public Sub Qexport_test_parcourir()
Dim xls As Workbook ' déclaration d'une variable objet de type classeur Excel
Dim var1 As String 'variable dans laquelle on stocke les valeurs à copier
Dim fd_p As String
fd_p = DialogueFichiers
Workbooks.Open Filename:=(fd_p)
Set xls = Workbooks(fd_p) 'instanciation de l'objet (qui devient ici le fichier excel indiqué)
'on entre des données dans monfichier.xlsx
With xls
.Worksheets(1).Range("B6").Value = "a"
.Worksheets(1).Range("B18").Value = "b"
.Worksheets(1).Range("A18").Value = "c"
End With
' import de données: on choisit les valeurs qui nous intéresse
var1 = xls.Worksheets(1).Range("C2").Value
'on met ces valeurs dans la cellule de notre fichier
ThisWorkbook.Worksheets(2).Range("B2").Value = var1
' une fois que vous avez fini d'utiliser la variable xls, pensez à la détruire
xls.Save
xls.Close True
Set xls = Nothing
End Sub
Vous l'aurez compris, la ligne problématique est "Set xls=Workbook(fd_p)".
En gros il me faudrait une nouvelle variable, qui soit fd_p_title, c'est à dire juste le nom de mon fichier.