Bonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message de
news: 43c5d52c$0$24008$
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" <repondez@surlegroupe.merci> a écrit dans le message de
news: 43c5d52c$0$24008$626a14ce@news.free.fr...
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message de
news: 43c5d52c$0$24008$
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message de
news: 43c5d52c$0$24008$
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" <repondez@surlegroupe.merci> a écrit dans le message de
news: 43c5d52c$0$24008$626a14ce@news.free.fr...
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message de
news: 43c5d52c$0$24008$
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Je te propose ceci :
'-------------------------------------
Sub OpenMultipleFiles()
Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Filename As Variant
LesFiltres = "Excel Files (*.xls),*.xls," & _
"Text Files (*.txt),*.txt," & _
"All Files (*.*),*.*"
'Filtre par défaut *.* -> All Files
FilterIndex = 3
'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)
MsgBox S(x)
Next
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
'-------------------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message de
news: 43c60825$0$5350$
Waow ! C'est génial !
En revanche, comment l'adapter au filedialogpicker qui permet, lui, de
sélectionner les fichiers à la main ?
C'est possible ?
Merci
SergeBonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message
de
news: 43c5d52c$0$24008$
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Je te propose ceci :
'-------------------------------------
Sub OpenMultipleFiles()
Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Filename As Variant
LesFiltres = "Excel Files (*.xls),*.xls," & _
"Text Files (*.txt),*.txt," & _
"All Files (*.*),*.*"
'Filtre par défaut *.* -> All Files
FilterIndex = 3
'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)
MsgBox S(x)
Next
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
'-------------------------------------
Salutations!
"Serge Hipontoise" <repondez@surlegroupe.merci> a écrit dans le message de
news: 43c60825$0$5350$636a15ce@news.free.fr...
Waow ! C'est génial !
En revanche, comment l'adapter au filedialogpicker qui permet, lui, de
sélectionner les fichiers à la main ?
C'est possible ?
Merci
Serge
Bonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" <repondez@surlegroupe.merci> a écrit dans le message
de
news: 43c5d52c$0$24008$626a14ce@news.free.fr...
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge
Bonjour Serge,
Je te propose ceci :
'-------------------------------------
Sub OpenMultipleFiles()
Dim S(), LesFiltres As String
Dim Title As String
Dim x As Integer, FilterIndex As Integer
Dim Filename As Variant
LesFiltres = "Excel Files (*.xls),*.xls," & _
"Text Files (*.txt),*.txt," & _
"All Files (*.*),*.*"
'Filtre par défaut *.* -> All Files
FilterIndex = 3
'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)
MsgBox S(x)
Next
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
'-------------------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message de
news: 43c60825$0$5350$
Waow ! C'est génial !
En revanche, comment l'adapter au filedialogpicker qui permet, lui, de
sélectionner les fichiers à la main ?
C'est possible ?
Merci
SergeBonjour Serge,
Tu peux utiliser quelque chose comme ceci :
'---------------------------------------
Sub RecupNomsFichiers()
Dim Classeurs() As String, I As Long
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
.FileName = "*.XLS"
'Répertoire où doit s'effectuer la recherche
.LookIn = "C:ATravail" 'A DETERMINER !!!
'inclure les sous-répertoires oui ou non?
.SearchSubFolders = False ' or true
If .Execute(SortBy:=msoSortbyFileName,
SortOrder:=msoSortOrderAscending) > 0 then
With .FoundFiles
For I = 1 To .Count
Msgbox .Item(I)
Next I
end with
end if
End With
End Sub
'----------------------------
Salutations!
"Serge Hipontoise" a écrit dans le message
de
news: 43c5d52c$0$24008$
Bonjour
Je suis en train de me faire une macro permettant d'effectuer certaines
opérations sur un nombre n de fichiers.
Afin de sélectionner les fichiers voulus j'utilise le fileDialog :
Sub MaMacro()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "Sélectionner les fichiers"
If fd.Show = -1 Then
For Each vFichier In fd.SelectedItems
MsgBox vFichier
Next vFichier
End If
End Sub
Donc c'est bien car on peut filtrer les fichiers voulus et -
théoriquement
(du moins le pensais-je) - choisir l'ordre de traitement grâce à
l'affichage
"Détails" et en triant sur le nom de fichier...
Et bien non !
Pour mes tests, j'utilise 3 fichiers nommés a01.xls, a02.xls, a03.xls En
les
triant par nom croissant, il me les traite dans l'ordre : 3,1,2 et
décroissant : 1,3,2.
Donc le tri joue bien, mais sans fonctionner correctement....
Auries-vous uen solution à cette énigme ?
Un grand merci d'avance
Serge