VBA fichier & Dossier
Résolu/Fermé
A voir également:
- VBA fichier & Dossier
- Fichier rar - Guide
- Dossier appdata - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
4 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 3/09/2012 à 09:14
Modifié par pijaku le 3/09/2012 à 09:14
Bonjour,
Ce code me conviendrais si je pouvais l'adapter et sélectionner plusieurs fichiers en même temps.
Pas de souci!
Sélectionner plusieurs fichiers en même temps :
Puis les stocker dans une variable tableau dynamique :
Les restituer, colonne B, en dessous des éléments déjà existants :
Ce qui nous donne :
Cordialement,
Franck P
Ce code me conviendrais si je pouvais l'adapter et sélectionner plusieurs fichiers en même temps.
Pas de souci!
Sélectionner plusieurs fichiers en même temps :
.AllowMultiSelect = True
Puis les stocker dans une variable tableau dynamique :
For Each varItems In .SelectedItems ReDim Preserve nom(i) nom(i) = varItems i = i + 1 Next
Les restituer, colonne B, en dessous des éléments déjà existants :
Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Resize(UBound(nom) + 1, 1) = Application.Transpose(nom)
Ce qui nous donne :
Sub Chemin1fichier() Dim fd As Object, nom(), varItems, i& Set fd = Application.FileDialog(msoFileDialogOpen) With fd .Title = "Choisissez le(s) Fichier(s)" .InitialFileName = "*.log" .Filters.Clear .AllowMultiSelect = True If .Show <> 0 Then For Each varItems In .SelectedItems ReDim Preserve nom(i) nom(i) = varItems i = i + 1 Next Else MsgBox "Vous n'avez selectionné aucun fichier", , "Recommencer" Exit Sub End If End With Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Resize(UBound(nom) + 1, 1) = Application.Transpose(nom) End Sub
Cordialement,
Franck P
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
31 août 2012 à 13:30
31 août 2012 à 13:30
Bonjour,
Essaye déjà cette macro, juste pour voir si qui ne te convient pas...
Essaye déjà cette macro, juste pour voir si qui ne te convient pas...
'sources 'http://www.excel-downloads.com/forum/126930-vba-liste-dossiers-et-sous-dossiers-dun-dosssier.html Dim ligne Sub arborescenceRepertoire() racine = ChoixDossier() ' ou un répertoire C:\xxx e.g. If racine = "" Then Exit Sub Range("A:E").ClearContents Range("A1:E60000").EntireRow.Hidden = False Set fs = CreateObject("Scripting.FileSystemObject") Set dossier_racine = fs.GetFolder(racine) ligne = 3 Lit_dossier dossier_racine, 1 End Sub Sub Lit_dossier(ByRef dossier, ByVal niveau) Dim oFile Dim CheminDuFichier As String Application.ScreenUpdating = False Cells(ligne, 2) = String(3 * (niveau - 1), " ") & dossier.Name Cells(ligne, 2).Font.Bold = True ligne = ligne + 1 For Each d In dossier.SubFolders Lit_dossier d, niveau + 1 For Each oFile In d.Files Cells(ligne, 3).Value = oFile.Name CheminDuFichier = d & "\" & oFile.Name ActiveSheet.Hyperlinks.Add Anchor:=Cells(ligne, 3), Address:= _ CheminDuFichier ', TextToDisplay:="bordereau DRH.doc" Cells(ligne, 3).EntireRow.Hidden = True ligne = ligne + 1 Next oFile Next d Application.ScreenUpdating = True Columns(2).EntireColumn.AutoFit End Sub Function ChoixDossier() If Val(Application.Version) >= 10 Then With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = ActiveWorkbook.Path & "\" .Show If .SelectedItems.Count > 0 Then ChoixDossier = .SelectedItems(1) Else ChoixDossier = "" End If End With Else ChoixDossier = InputBox("Répertoire?") End If End Function
Bonjour pijaku, et merci pour ta réponse.
Mais ces fonctions ressemble (sous dos) à command.com /c tree /F /A
Je pense m'être mal expliqué.
Ce que je cherche c'est plutôt le liste des fichiers .log dans un dossier et ses sous dossier. J'ai trouvé mDFScanFichiers sur le net (http://www.excel-downloads.com/forum/107839-extraire-le-detail-des-fichiers-dun-repertoire-windows-vers-excel-2.html) qui après quelques adaptations me correspond bien.
Maintenant je cherche à pouvoir ajouter un ou plusieurs fichiers à la liste déjà obtenu un truc de ce genre...
Sub Chemin1fichier()
Dim fd As Object, nom$
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Title = "Choisissez le Fichier"
.InitialFileName = "*.log"
.Filters.Clear
.AllowMultiSelect = False
If .Show <> 0 Then
nom = .SelectedItems(1)
Else
MsgBox "Vous n'avez serlectionné aucun fichier", , "Recommencer"
End If
End With
Range("B1") = nom
End Sub
Ce code me conviendrais si je pouvais l'adapter et sélectionner plusieurs fichiers en même temps.
Merci à vous
Mais ces fonctions ressemble (sous dos) à command.com /c tree /F /A
Je pense m'être mal expliqué.
Ce que je cherche c'est plutôt le liste des fichiers .log dans un dossier et ses sous dossier. J'ai trouvé mDFScanFichiers sur le net (http://www.excel-downloads.com/forum/107839-extraire-le-detail-des-fichiers-dun-repertoire-windows-vers-excel-2.html) qui après quelques adaptations me correspond bien.
Maintenant je cherche à pouvoir ajouter un ou plusieurs fichiers à la liste déjà obtenu un truc de ce genre...
Sub Chemin1fichier()
Dim fd As Object, nom$
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.Title = "Choisissez le Fichier"
.InitialFileName = "*.log"
.Filters.Clear
.AllowMultiSelect = False
If .Show <> 0 Then
nom = .SelectedItems(1)
Else
MsgBox "Vous n'avez serlectionné aucun fichier", , "Recommencer"
End If
End With
Range("B1") = nom
End Sub
Ce code me conviendrais si je pouvais l'adapter et sélectionner plusieurs fichiers en même temps.
Merci à vous