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?
'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.
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
'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" <pat@yaou.fr> a écrit dans le message de news: 4569c1db$0$7032$426a74cc@news.free.fr...
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?
'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?