OVH Cloud OVH Cloud

parcourir les fichiers avec un userform

1 réponse
Avatar
Patrice
Bonjour,

Mon petit projet sous VBA excel avance bien: J'ai réussi les gros
morceaux de code permettant de mettre à jour un fichier principal à
partir de plusieurs fichiers navettes, puis de re-créer ces fichiers
navettes avec l'ensemble des données de tous les fichiers (une rotation
hebdomadaire)

Maintenant, je souhaite créer un userform qui permet d'indiquer à la
macro principale l'adresse sur mon pc de tous les fichiers retour (5 en
tout).
Pour cela j'ai recherché sur le web s'il était possible dans un userform
d'avoir un bouton parcourir pour chaque zone de texte mais je me suis
cassé les dents.

J' ai tropuvé ceci:
Application.GetOpenFilename "Fichers Excel (*.xls),*.xls"
Mais pas moyen de récupérer l'adresse du fichier.


J'ai trouvé aussi ceci:
Private Button1_click()
commonDialog1.ShowOpen
End Sub
Mais erreur!.

Pouvez-vous m'indiquer une astuce ou l'adresse d'un site traitant ce sujet?

D'avance merci.

1 réponse

Avatar
MichDenis
Essaie ceci :


'-----------------------------------
Sub OpenMultipleFiles()

Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Filename As Variant, Message As String

LesFiltres = "Excel Files (*.xls),*.xls," & _
"Text Files (*.txt),*.txt," & _
"All Files (*.*),*.*"

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

'Titre de la boîte de dialogue
Title = "Sélectionner les fichiers à ouvrir..."

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

Filename = Application.GetOpenFilename(FileFilter:=LesFiltres, _
FilterIndex:=FilterIndex, Title:=Title, MultiSelect:=True)
Select Case TypeName(Filename)
Case Is = "Boolean"
'annuler la boîte de dialogue
Exit Sub
Case Is = "String"
'un fichier seulement de sélectionner
ReDim S(1 To 1)
S(1) = Filename
Case Else
ReDim S(1 To UBound(Filename))
S = BubbleSort(Filename)

End Select
For x = LBound(S) To UBound(S)
Message = Message & S(x) & vbCrLf
Next
MsgBox Message
End Sub
'-----------------------------------
Function BubbleSort(List As Variant)
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i) > List(j) Then
Temp = List(j)
List(j) = List(i)
List(i) = Temp
End If
Next j
Next i
BubbleSort = List
End Function
'-----------------------------------





"Patrice" a écrit dans le message de news: 4569c1db$0$7032$
Bonjour,

Mon petit projet sous VBA excel avance bien: J'ai réussi les gros
morceaux de code permettant de mettre à jour un fichier principal à
partir de plusieurs fichiers navettes, puis de re-créer ces fichiers
navettes avec l'ensemble des données de tous les fichiers (une rotation
hebdomadaire)

Maintenant, je souhaite créer un userform qui permet d'indiquer à la
macro principale l'adresse sur mon pc de tous les fichiers retour (5 en
tout).
Pour cela j'ai recherché sur le web s'il était possible dans un userform
d'avoir un bouton parcourir pour chaque zone de texte mais je me suis
cassé les dents.

J' ai tropuvé ceci:
Application.GetOpenFilename "Fichers Excel (*.xls),*.xls"
Mais pas moyen de récupérer l'adresse du fichier.


J'ai trouvé aussi ceci:
Private Button1_click()
commonDialog1.ShowOpen
End Sub
Mais erreur!.

Pouvez-vous m'indiquer une astuce ou l'adresse d'un site traitant ce sujet?

D'avance merci.