Problème multiple files et getopenfilename

  • Initiateur de la discussion Initiateur de la discussion tho7
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tho7

XLDnaute Nouveau
Bonjour, après avoir longuement cherché la réponse, je m'adresse à vous pour avoir un peu d'aide.

Je souhaite récupérer des chemins de fichiers grâce à getopenfilename. Je souhaite pouvoir en sélectionner plusieurs. Excel m'autorise la sélection de plusieurs fichiers. Cependant la boite me renvoie irrémédiablement un variant/string. Le résultat est qu'un seul fichier est sélectionné.

Pouvez-vous m'aider à résoudre mon problème?

Merci!!!!

Voilà le code en question:

Sub OpenMultipleFiles()

Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Fichiers_a_prendre As Variant
Dim Dossier As String
Dim fichier As String
Dim nbre_lettre As Long


Application.ScreenUpdating = True
Sheets(nm_feuille_fichier).Protect Password:="toto", UserInterfaceOnly:=True



LesFiltres = "Fichiers Excel (*.xls; *.xlsx),*.xls;*.xlsx," & _
"Tous types de fichier (*.*),*.*"

'Filtre par défaut *.* -> All Files
FilterIndex = 1

'Titre de la boîte de dialogue
Title = "Sélectionner vos Bilans Carbone"

'Pour sélectionner le lecteur
'CurDir "c:"
'Pour sélectionner le répertoire à l'ouverture
'ChDir "C:\"

Fichiers_a_prendre = Application.GetOpenFilename(FileFilter:=LesFiltres, FilterIndex:=FilterIndex, Title:=Title, MultiSelect:=True) '


Dossier = CurDir
nbre_lettre = Len(Dossier)


Select Case VarType(Fichiers_a_prendre)
Case vbBoolean
'annuler la boîte de dialogue
Exit Sub

''Case Is = "String"
'un fichier seulement sélectionné

Case vbString
ReDim S(1 To 1)
S(1) = Fichiers_a_prendre

Case (vbArray)
msgbox("ok plusieurs")
ReDim S(1 To UBound(Fichiers_a_prendre))
For i = 1 To UBound(Fichiers_a_prendre)
S(i) = Fichiers_a_prendre(i)
Next


End Select

End Sub
 
Re : Problème multiple files et getopenfilename

Bonjour tho,

pas sûr de bien comprendre ton problème, mais regarde peut être le code ci-dessous, fonctionne chez moi sous 2003 :

Code:
Option Explicit
Sub test()
Dim Fichiers, i As Byte
Fichiers = Application.GetOpenFilename(MultiSelect:=True)
If VarType(Fichiers) <> vbBoolean Then
    For i = LBound(Fichiers) To UBound(Fichiers)
        Workbooks.Open Fichiers(i)
    Next i
End If
End Sub

bonne journée
@+
 
Re : Problème multiple files et getopenfilename

Bonjour Pierrot et tho,

une procédure que j'ai corrigée et testée y'a pas très longtemps , ça traite le problème des type variable de la même façon que Pierrot.

Option Explicit
Sub OuvertureDeFichiers()
Dim OuvrirFichiers As Variant
Dim rep As Long
Dim liste As String
Dim compteur As Byte
'
'affichage de la boîte de dialogue Ouvrir
OuvrirFichiers = Application.GetOpenFilename("Tous les fichiers Microsoft Excel, *.xls", , , , True)
Select Case TypeName(OuvrirFichiers)
Case Is = "Boolean"
MsgBox "Aucun fichier n'a été sélectionné. Fin de la procédure", _
vbOKOnly + vbCritical, "Fin de la procédure"
Case Is = "Variant()"
'si l'utilisateur a sélectionné plusieurs fichiers
If UBound(OuvrirFichiers) > 1 Then
For compteur = 1 To UBound(OuvrirFichiers)
liste = liste & vbCr & OuvrirFichiers(compteur)
Next compteur
'affichage de la liste des fichiers et proposition d'ouverture
rep = MsgBox("L'utilisateur a sélectionné plusieurs fichiers. En voici la liste." & _
liste & vbCr & "Voulez-vous les ouvrir ?", vbYesNo + vbQuestion, "Ouvrir les fichiers ?")
'ouverture des fichiers en cas de réponse positive
If rep = vbYes Then
For compteur = 1 To UBound(OuvrirFichiers)
Workbooks.Open Filename:=OuvrirFichiers(compteur)
Next compteur
End If
'si un seul fichier a été sélectionné, il est ouvert
Else
Workbooks.Open Filename:=OuvrirFichiers(1)
End If
End Select
End Sub
 
Re : Problème multiple files et getopenfilename

Bonjour, merci pour vos réponses.

En fait mon problème est bizarre parce qu'il s'en va et revient. Il n'existe pas dans un autre fichier où j'ai exactement le même code. Il parait que son fonctionnement est parfois mystérieux. Je voulais juste savoir si certains d'entre vous avez des pistes sur ce que je devais chercher.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
244
Réponses
3
Affichages
673
Réponses
4
Affichages
243
Réponses
3
Affichages
582
Réponses
1
Affichages
580
Compte Supprimé 979
C
Retour