Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

récuperer noms fichiers répertoire

2 réponses
Avatar
GUY
Bonjour
j'ai récupéré sur internet une macro qui permet d'afficher dans un classeur
le nom des fichiers d'un répertoire
que l'on choisit dans une boite de dialogue
je ne suis très fort en VB et je souhaiterai trouver une macro qui m'
afficherait le nom des fichiers du répertoire ou se trouve mon fichier excel
le répertoire n 'étant pas forcement le même à chaque fois
ceci pour des besoins professionnels
mon fichier excel étant dans le répertoire toto je souhaiterai en activant
la macro qu 'il m'affiche automatiquement dans une colonne les noms de tous
es fichiers contenus dans ce répertoire
le même fichier étant dans le répertoire tata j 'aimerai qu'il m'affiche les
noms du répertoire tata
Vous trouverez ci-joint la macro que j'ai récupérée et que j 'aimerai
pouvoir modifier
merci de votre aide

ceci étant pour le boulot voici mon adresse ou vous pouvez me repondre
Guy.Le-Mouel@renault.com
GUY




Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String)
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
bInfo.ulFlags = &h1
x = SHBrowseForFolder(bInfo)
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Range("a2") = GetDirectory
Else
GetDirectory = ""
End If
End Function
'Appel a la procedure :
Sub appel()
Range("B2:B2000").ClearContents
Msg = "Selection de la directory désirée"
ChDir GetDirectory(Msg)
End Sub
'Recupere les noms de fichiers d'un répertoire dans un tableau

Sub RecupNomFichier(ByVal Chemin As String, ByRef Tableau As Variant)
Dim Fichier As String
Dim Compteur As Integer
Dim LigneCompteur As Integer
'Chemin = Application.InputBox(Prompt:="Quel répertoire voulez-vous
imprimer?")
Chemin = Range("A2")
Chemin = Chemin + "\*.*"
'Range("B1") = Chemin
Compteur = 1
Fichier = Dir(Chemin)
Do While (Len(Fichier) > 0)
ReDim Preserve Tableau(Compteur)
Tableau(Compteur - 1) = Fichier
LigneCompteur = Compteur + 1
ActiveSheet.Range("B" & LigneCompteur).Value = Tableau(Compteur - 1)
Compteur = Compteur + 1
Fichier = Dir()

Loop
End Sub
Sub RecupFichierTableau()
On Error Resume Next
Application.ScreenUpdating = False
Dim Tableau() As String
Call RecupNomFichier(Chemin, Tableau)
FiltreAlpha
End Sub
Sub Imprim()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
'Range("Données").PrintOut ActivePrinter:="Brother HL-730 sur LPT1:"

Sub FiltreAlpha()

Columns("B:B").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
With Selection
.HorizontalAlignment = xlGeneral
.Orientation = 0
End With
With Selection
.HorizontalAlignment = xlRight
.Orientation = 0
End With
Range("B1").Select
End Sub


GUY

2 réponses

Avatar
Michel Pierron
Salut Moi;
Essaie ceci:

Sub DirList()
Dim iCount As Integer, ePath As String, sPath As String
sPath = ThisWorkbook.Path
Application.DisplayStatusBar = True
Application.ScreenUpdating = False
Workbooks.Add
Application.StatusBar = "Traitement répertoire " & sPath & "..."
ePath = Dir(sPath & "*.*", vbNormal + vbHidden)
While ePath <> ""
If ePath <> "." And ePath <> ".." Then
iCount = iCount + 1
ActiveSheet.Cells(iCount, 1) = ePath
ePath = Dir()
End If
Wend
Application.StatusBar = False
ActiveSheet.Columns(1).Columns.AutoFit
End Sub

MP

"GUY" a écrit dans le message de
news:3f749ce2$0$27025$
Bonjour
j'ai récupéré sur internet une macro qui permet d'afficher dans un
classeur

le nom des fichiers d'un répertoire
que l'on choisit dans une boite de dialogue
je ne suis très fort en VB et je souhaiterai trouver une macro qui m'
afficherait le nom des fichiers du répertoire ou se trouve mon fichier
excel

le répertoire n 'étant pas forcement le même à chaque fois
ceci pour des besoins professionnels
mon fichier excel étant dans le répertoire toto je souhaiterai en activant
la macro qu 'il m'affiche automatiquement dans une colonne les noms de
tous

es fichiers contenus dans ce répertoire
le même fichier étant dans le répertoire tata j 'aimerai qu'il m'affiche
les

noms du répertoire tata
Vous trouverez ci-joint la macro que j'ai récupérée et que j 'aimerai
pouvoir modifier
merci de votre aide

ceci étant pour le boulot voici mon adresse ou vous pouvez me repondre

GUY




Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String)
As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
bInfo.ulFlags = &h1
x = SHBrowseForFolder(bInfo)
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Range("a2") = GetDirectory
Else
GetDirectory = ""
End If
End Function
'Appel a la procedure :
Sub appel()
Range("B2:B2000").ClearContents
Msg = "Selection de la directory désirée"
ChDir GetDirectory(Msg)
End Sub
'Recupere les noms de fichiers d'un répertoire dans un tableau

Sub RecupNomFichier(ByVal Chemin As String, ByRef Tableau As Variant)
Dim Fichier As String
Dim Compteur As Integer
Dim LigneCompteur As Integer
'Chemin = Application.InputBox(Prompt:="Quel répertoire voulez-vous
imprimer?")
Chemin = Range("A2")
Chemin = Chemin + "*.*"
'Range("B1") = Chemin
Compteur = 1
Fichier = Dir(Chemin)
Do While (Len(Fichier) > 0)
ReDim Preserve Tableau(Compteur)
Tableau(Compteur - 1) = Fichier
LigneCompteur = Compteur + 1
ActiveSheet.Range("B" & LigneCompteur).Value = Tableau(Compteur - 1)
Compteur = Compteur + 1
Fichier = Dir()

Loop
End Sub
Sub RecupFichierTableau()
On Error Resume Next
Application.ScreenUpdating = False
Dim Tableau() As String
Call RecupNomFichier(Chemin, Tableau)
FiltreAlpha
End Sub
Sub Imprim()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
'Range("Données").PrintOut ActivePrinter:="Brother HL-730 sur LPT1:"

Sub FiltreAlpha()

Columns("B:B").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending,
Header:=xlGuess,

_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
With Selection
.HorizontalAlignment = xlGeneral
.Orientation = 0
End With
With Selection
.HorizontalAlignment = xlRight
.Orientation = 0
End With
Range("B1").Select
End Sub


GUY




Avatar
GUY
C'est exactement ce que je voulais merci infiniment
GUY
Michel Pierron a écrit dans le message :
#y#
Salut Moi;
Essaie ceci:

Sub DirList()
Dim iCount As Integer, ePath As String, sPath As String
sPath = ThisWorkbook.Path
Application.DisplayStatusBar = True
Application.ScreenUpdating = False
Workbooks.Add
Application.StatusBar = "Traitement répertoire " & sPath & "..."
ePath = Dir(sPath & "*.*", vbNormal + vbHidden)
While ePath <> ""
If ePath <> "." And ePath <> ".." Then
iCount = iCount + 1
ActiveSheet.Cells(iCount, 1) = ePath
ePath = Dir()
End If
Wend
Application.StatusBar = False
ActiveSheet.Columns(1).Columns.AutoFit
End Sub

MP

"GUY" a écrit dans le message de
news:3f749ce2$0$27025$
Bonjour
j'ai récupéré sur internet une macro qui permet d'afficher dans un
classeur

le nom des fichiers d'un répertoire
que l'on choisit dans une boite de dialogue
je ne suis très fort en VB et je souhaiterai trouver une macro qui m'
afficherait le nom des fichiers du répertoire ou se trouve mon fichier
excel

le répertoire n 'étant pas forcement le même à chaque fois
ceci pour des besoins professionnels
mon fichier excel étant dans le répertoire toto je souhaiterai en
activant


la macro qu 'il m'affiche automatiquement dans une colonne les noms de
tous

es fichiers contenus dans ce répertoire
le même fichier étant dans le répertoire tata j 'aimerai qu'il m'affiche
les

noms du répertoire tata
Vous trouverez ci-joint la macro que j'ai récupérée et que j 'aimerai
pouvoir modifier
merci de votre aide

ceci étant pour le boulot voici mon adresse ou vous pouvez me repondre

GUY




Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As
String)


As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
bInfo.ulFlags = &h1
x = SHBrowseForFolder(bInfo)
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Range("a2") = GetDirectory
Else
GetDirectory = ""
End If
End Function
'Appel a la procedure :
Sub appel()
Range("B2:B2000").ClearContents
Msg = "Selection de la directory désirée"
ChDir GetDirectory(Msg)
End Sub
'Recupere les noms de fichiers d'un répertoire dans un tableau

Sub RecupNomFichier(ByVal Chemin As String, ByRef Tableau As Variant)
Dim Fichier As String
Dim Compteur As Integer
Dim LigneCompteur As Integer
'Chemin = Application.InputBox(Prompt:="Quel répertoire voulez-vous
imprimer?")
Chemin = Range("A2")
Chemin = Chemin + "*.*"
'Range("B1") = Chemin
Compteur = 1
Fichier = Dir(Chemin)
Do While (Len(Fichier) > 0)
ReDim Preserve Tableau(Compteur)
Tableau(Compteur - 1) = Fichier
LigneCompteur = Compteur + 1
ActiveSheet.Range("B" & LigneCompteur).Value = Tableau(Compteur - 1)
Compteur = Compteur + 1
Fichier = Dir()

Loop
End Sub
Sub RecupFichierTableau()
On Error Resume Next
Application.ScreenUpdating = False
Dim Tableau() As String
Call RecupNomFichier(Chemin, Tableau)
FiltreAlpha
End Sub
Sub Imprim()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
'Range("Données").PrintOut ActivePrinter:="Brother HL-730 sur LPT1:"

Sub FiltreAlpha()

Columns("B:B").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending,
Header:=xlGuess,

_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
With Selection
.HorizontalAlignment = xlGeneral
.Orientation = 0
End With
With Selection
.HorizontalAlignment = xlRight
.Orientation = 0
End With
Range("B1").Select
End Sub


GUY