Dans une macro ou un complément, il peut arriver que vous demandiez à l’utilisateur de sélectionner un fichier. Il est possible d’utiliser la boîte de dialogue FileDialog standard à cet effet. Le code suivant est destiné à fournir les paramètres les plus courants que vous pouvez modifier pour répondre à vos besoins.
Sub selectFile() Dim dialogBox As FileDialog Set dialogBox = Application.FileDialog(msoFileDialogOpen) 'Set the display properties - these are optional 'All the settings must be applied before the .Show command 'Do not allow multiple files to be selected dialogBox.AllowMultiSelect = False 'Set the title of of the DialogBox dialogBox.Title = "Select a file" 'Show the dialog box and output full file path and file name If dialogBox.Show = -1 Then MsgBox "You selected: " & dialogBox.SelectedItems(1) End If End Sub
Sub selectFiles() Dim dialogBox As FileDialog Set dialogBox = Application.FileDialog(msoFileDialogOpen) Dim i As Integer 'Set the display properties - these are optional 'All the settings must be applied before the .Show command 'Allow multiple files to be selected dialogBox.AllowMultiSelect = True 'Set the title of of the DialogBox dialogBox.Title = "Select a file" 'Show the dialog box 'Loop through each selected item and output to Immediate Window For i = 1 To dialogBox.SelectedItems.Count Debug.Print dialogBox.SelectedItems(i) Next i End Sub
Générez un code VBA précis en quelques secondes avec AutoMacro
AutoMacro est un puissant générateur de code VBA qui est livré avec une bibliothèque de code étendue et de nombreux autres outils et utilitaires permettant de gagner du temps.
Que vous soyez un codeur expérimenté cherchant à gagner du temps ou un débutant essayant simplement de faire fonctionner les choses, AutoMacro est l’outil qu’il vous faut.
'Set the default folder to open dialogBox.InitialFileName = "C:UsersmarksDocuments" 'Set filters to show specific files types only - these are optional 'Clear any existing filters first dialogBox.Filters.Clear 'Add more filters - use ; to separate filters for the same name dialogBox.Filters.Add "Excel workboooks", "*.xlsx;*.xls;*.xlsm"
Parfois, vous voulez le chemin complet du fichier de l’élément sélectionné
'Show the full file path (folder & file name)
MgsBox dialogBox.SelectedItems(i)
D’autres fois, vous voulez juste le nom du fichier (pas le dossier)
'Just show the file name MsgBox Dir(dialogBox.SelectedItems(1))
N’oubliez pas:
Si vous avez trouvé cet article utile ou si vous avez une meilleure approche, veuillez laisser un commentaire ci-dessous.
Avez-vous besoin d’aide pour l’adapter à vos besoins?
Je suppose que les exemples de cet article ne correspondaient pas exactement à votre situation. Nous utilisons tous Excel différemment, il est donc impossible d’écrire un article qui répondra aux besoins de chacun. En prenant le temps de comprendre les techniques et principes de cet article (et ailleurs sur ce site) vous devriez pouvoir l’adapter à vos besoins.
Mais si vous avez encore du mal, vous devriez: