J'essaie de scanner un répertoire et de récupérer le nom de tous les
fichiers dans un autre fichier excel.
Je fais ça en VBscript mais je sèche !!!
Merci pour votre aide ;o)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !
En VB, je ne sais pas, mais, en Python, c'est assez facile. Voilà un exemple de script, qui crée une feuille Excel, et va mettre, dans la colonne 'B', le contenu du directory 'C:toto'
lfichiers=os.listdir(r'C:toto') excelEcritListe([[item] for item in lfichiers])
en commentaire, il y a la ligne pour sauvegarder la feuille sous 'C:titi.xls'
Simple, non ?
@-salutations -- Michel Claveau
Bonsoir !
En VB, je ne sais pas, mais, en Python, c'est assez facile.
Voilà un exemple de script, qui crée une feuille Excel, et va mettre, dans
la colonne 'B', le contenu du directory 'C:toto'
En VB, je ne sais pas, mais, en Python, c'est assez facile. Voilà un exemple de script, qui crée une feuille Excel, et va mettre, dans la colonne 'B', le contenu du directory 'C:toto'
lfichiers=os.listdir(r'C:toto') excelEcritListe([[item] for item in lfichiers])
en commentaire, il y a la ligne pour sauvegarder la feuille sous 'C:titi.xls'
Simple, non ?
@-salutations -- Michel Claveau
Jean-Claude BELLAMY
Dans le message news: , Mystique s'est ainsi exprimé:
Bonjour,
J'essaie de scanner un répertoire et de récupérer le nom de tous les fichiers dans un autre fichier excel. Je fais ça en VBscript mais je sèche !!!
Voici un script de ma conception qui explore RÉCURSIVEMENT un dossier (passé en paramètre) et qui écrit cela dans EXCEL Les nom de dossiers sont en gras. Il y a respect de l'arborescence.
Tu peux améliorer (couleur, taille des caractères, ...)
Fichier "Folder2Excel.vbs" ------- couper ici ------- Set args = Wscript.Arguments if args.count=0 then wscript.quit Set fso = WScript.CreateObject("Scripting.FileSystemObject") folder=args(0) if not fso.FolderExists(folder) then Wscript.echo "Dossier inexistant" wscript.quit end if Set oXL = WScript.CreateObject("EXCEL.application") oXL.Visible = True oXL.Workbooks.Add
'-------------------------------------------------------------------- Sub Explore(dossier,niveau) set f=fso.GetFolder(dossier) set collFic=f.Files set collDir=f.SubFolders Cellule NumL,Niveau,f.Name,true,false,0 For each SubDir in CollDir Explore dossier & "" & SubDir.Name,niveau+1 Next For each Fic in collfic Cellule NumL,Niveau+1,Fic.Name,false,false,0 NumL=NumL+1 Next End Sub '----------------------------------------------- Function GetPath() Dim path path = WScript.ScriptFullName GetPath = Left(path, InStrRev(path, "")) End Function '********* sous-programmes EXCEL ********* Sub Cellule(NumL,NumC,chaine,casse,italic,size) oXL.Cells(NumL,NumC).Value = Chaine If casse or size<>0 Then CoordsÎllName(NumL,NumC) oXL.Range(Coords & ":" & Coords).Select If casse Then oXL.Selection.Font.Bold = True If italic Then oXL.Selection.Font.Italic = True If size<>0 Then oXL.Selection.Font.Size = size End If End Sub '----------------------------------------------- Function ColName(NumC) If NumC<& Then ColName=chr(64+NumC) Else n1=int(NumC/26) n2=NumC-n1*26 ColName=chr(64+n1) & chr(64+n2) End If End Function '----------------------------------------------- Function CellName(NumL,NumC) CellName=ColName(NumC) & NumL End Function ------- couper ici -------
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Dans le message news:427E7CB1-D41C-44C9-9322-58148E821EA0@microsoft.com ,
Mystique <Mystique@discussions.microsoft.com> s'est ainsi exprimé:
Bonjour,
J'essaie de scanner un répertoire et de récupérer le nom de tous les
fichiers dans un autre fichier excel.
Je fais ça en VBscript mais je sèche !!!
Voici un script de ma conception qui explore RÉCURSIVEMENT un dossier (passé
en paramètre) et qui écrit cela dans EXCEL
Les nom de dossiers sont en gras.
Il y a respect de l'arborescence.
Tu peux améliorer (couleur, taille des caractères, ...)
Fichier "Folder2Excel.vbs"
------- couper ici -------
Set args = Wscript.Arguments
if args.count=0 then wscript.quit
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
folder=args(0)
if not fso.FolderExists(folder) then
Wscript.echo "Dossier inexistant"
wscript.quit
end if
Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
oXL.Workbooks.Add
'--------------------------------------------------------------------
Sub Explore(dossier,niveau)
set f=fso.GetFolder(dossier)
set collFic=f.Files
set collDir=f.SubFolders
Cellule NumL,Niveau,f.Name,true,false,0
For each SubDir in CollDir
Explore dossier & "" & SubDir.Name,niveau+1
Next
For each Fic in collfic
Cellule NumL,Niveau+1,Fic.Name,false,false,0
NumL=NumL+1
Next
End Sub
'-----------------------------------------------
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, ""))
End Function
'********* sous-programmes EXCEL *********
Sub Cellule(NumL,NumC,chaine,casse,italic,size)
oXL.Cells(NumL,NumC).Value = Chaine
If casse or size<>0 Then
CoordsÎllName(NumL,NumC)
oXL.Range(Coords & ":" & Coords).Select
If casse Then oXL.Selection.Font.Bold = True
If italic Then oXL.Selection.Font.Italic = True
If size<>0 Then oXL.Selection.Font.Size = size
End If
End Sub
'-----------------------------------------------
Function ColName(NumC)
If NumC<& Then
ColName=chr(64+NumC)
Else
n1=int(NumC/26)
n2=NumC-n1*26
ColName=chr(64+n1) & chr(64+n2)
End If
End Function
'-----------------------------------------------
Function CellName(NumL,NumC)
CellName=ColName(NumC) & NumL
End Function
------- couper ici -------
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
Dans le message news: , Mystique s'est ainsi exprimé:
Bonjour,
J'essaie de scanner un répertoire et de récupérer le nom de tous les fichiers dans un autre fichier excel. Je fais ça en VBscript mais je sèche !!!
Voici un script de ma conception qui explore RÉCURSIVEMENT un dossier (passé en paramètre) et qui écrit cela dans EXCEL Les nom de dossiers sont en gras. Il y a respect de l'arborescence.
Tu peux améliorer (couleur, taille des caractères, ...)
Fichier "Folder2Excel.vbs" ------- couper ici ------- Set args = Wscript.Arguments if args.count=0 then wscript.quit Set fso = WScript.CreateObject("Scripting.FileSystemObject") folder=args(0) if not fso.FolderExists(folder) then Wscript.echo "Dossier inexistant" wscript.quit end if Set oXL = WScript.CreateObject("EXCEL.application") oXL.Visible = True oXL.Workbooks.Add
'-------------------------------------------------------------------- Sub Explore(dossier,niveau) set f=fso.GetFolder(dossier) set collFic=f.Files set collDir=f.SubFolders Cellule NumL,Niveau,f.Name,true,false,0 For each SubDir in CollDir Explore dossier & "" & SubDir.Name,niveau+1 Next For each Fic in collfic Cellule NumL,Niveau+1,Fic.Name,false,false,0 NumL=NumL+1 Next End Sub '----------------------------------------------- Function GetPath() Dim path path = WScript.ScriptFullName GetPath = Left(path, InStrRev(path, "")) End Function '********* sous-programmes EXCEL ********* Sub Cellule(NumL,NumC,chaine,casse,italic,size) oXL.Cells(NumL,NumC).Value = Chaine If casse or size<>0 Then CoordsÎllName(NumL,NumC) oXL.Range(Coords & ":" & Coords).Select If casse Then oXL.Selection.Font.Bold = True If italic Then oXL.Selection.Font.Italic = True If size<>0 Then oXL.Selection.Font.Size = size End If End Sub '----------------------------------------------- Function ColName(NumC) If NumC<& Then ColName=chr(64+NumC) Else n1=int(NumC/26) n2=NumC-n1*26 ColName=chr(64+n1) & chr(64+n2) End If End Function '----------------------------------------------- Function CellName(NumL,NumC) CellName=ColName(NumC) & NumL End Function ------- couper ici -------
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Philippe T [MS]
Bonjour,
Merci Jean-Claud : il marche très très bien !!!
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"Jean-Claude BELLAMY" wrote in message news:
Dans le message news: , Mystique s'est ainsi exprimé:
Bonjour,
J'essaie de scanner un répertoire et de récupérer le nom de tous les fichiers dans un autre fichier excel. Je fais ça en VBscript mais je sèche !!!
Voici un script de ma conception qui explore RÉCURSIVEMENT un dossier (passé
en paramètre) et qui écrit cela dans EXCEL Les nom de dossiers sont en gras. Il y a respect de l'arborescence.
Tu peux améliorer (couleur, taille des caractères, ...)
Fichier "Folder2Excel.vbs" ------- couper ici ------- Set args = Wscript.Arguments if args.count=0 then wscript.quit Set fso = WScript.CreateObject("Scripting.FileSystemObject") folder=args(0) if not fso.FolderExists(folder) then Wscript.echo "Dossier inexistant" wscript.quit end if Set oXL = WScript.CreateObject("EXCEL.application") oXL.Visible = True oXL.Workbooks.Add
'-------------------------------------------------------------------- Sub Explore(dossier,niveau) set f=fso.GetFolder(dossier) set collFic=f.Files set collDir=f.SubFolders Cellule NumL,Niveau,f.Name,true,false,0 For each SubDir in CollDir Explore dossier & "" & SubDir.Name,niveau+1 Next For each Fic in collfic Cellule NumL,Niveau+1,Fic.Name,false,false,0 NumL=NumL+1 Next End Sub '----------------------------------------------- Function GetPath() Dim path path = WScript.ScriptFullName GetPath = Left(path, InStrRev(path, "")) End Function '********* sous-programmes EXCEL ********* Sub Cellule(NumL,NumC,chaine,casse,italic,size) oXL.Cells(NumL,NumC).Value = Chaine If casse or size<>0 Then CoordsÎllName(NumL,NumC) oXL.Range(Coords & ":" & Coords).Select If casse Then oXL.Selection.Font.Bold = True If italic Then oXL.Selection.Font.Italic = True If size<>0 Then oXL.Selection.Font.Size = size End If End Sub '----------------------------------------------- Function ColName(NumC) If NumC<& Then ColName=chr(64+NumC) Else n1=int(NumC/26) n2=NumC-n1*26 ColName=chr(64+n1) & chr(64+n2) End If End Function '----------------------------------------------- Function CellName(NumL,NumC) CellName=ColName(NumC) & NumL End Function ------- couper ici -------
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Bonjour,
Merci Jean-Claud : il marche très très bien !!!
Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france
"Jean-Claude BELLAMY" <Jean-Claude.Bellamy@wanadoo.fr> wrote in message
news:O5cg3pE7EHA.3596@TK2MSFTNGP12.phx.gbl...
Dans le message news:427E7CB1-D41C-44C9-9322-58148E821EA0@microsoft.com ,
Mystique <Mystique@discussions.microsoft.com> s'est ainsi exprimé:
Bonjour,
J'essaie de scanner un répertoire et de récupérer le nom de tous les
fichiers dans un autre fichier excel.
Je fais ça en VBscript mais je sèche !!!
Voici un script de ma conception qui explore RÉCURSIVEMENT un dossier
(passé
en paramètre) et qui écrit cela dans EXCEL
Les nom de dossiers sont en gras.
Il y a respect de l'arborescence.
Tu peux améliorer (couleur, taille des caractères, ...)
Fichier "Folder2Excel.vbs"
------- couper ici -------
Set args = Wscript.Arguments
if args.count=0 then wscript.quit
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
folder=args(0)
if not fso.FolderExists(folder) then
Wscript.echo "Dossier inexistant"
wscript.quit
end if
Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
oXL.Workbooks.Add
'--------------------------------------------------------------------
Sub Explore(dossier,niveau)
set f=fso.GetFolder(dossier)
set collFic=f.Files
set collDir=f.SubFolders
Cellule NumL,Niveau,f.Name,true,false,0
For each SubDir in CollDir
Explore dossier & "" & SubDir.Name,niveau+1
Next
For each Fic in collfic
Cellule NumL,Niveau+1,Fic.Name,false,false,0
NumL=NumL+1
Next
End Sub
'-----------------------------------------------
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, ""))
End Function
'********* sous-programmes EXCEL *********
Sub Cellule(NumL,NumC,chaine,casse,italic,size)
oXL.Cells(NumL,NumC).Value = Chaine
If casse or size<>0 Then
CoordsÎllName(NumL,NumC)
oXL.Range(Coords & ":" & Coords).Select
If casse Then oXL.Selection.Font.Bold = True
If italic Then oXL.Selection.Font.Italic = True
If size<>0 Then oXL.Selection.Font.Size = size
End If
End Sub
'-----------------------------------------------
Function ColName(NumC)
If NumC<& Then
ColName=chr(64+NumC)
Else
n1=int(NumC/26)
n2=NumC-n1*26
ColName=chr(64+n1) & chr(64+n2)
End If
End Function
'-----------------------------------------------
Function CellName(NumL,NumC)
CellName=ColName(NumC) & NumL
End Function
------- couper ici -------
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"Jean-Claude BELLAMY" wrote in message news:
Dans le message news: , Mystique s'est ainsi exprimé:
Bonjour,
J'essaie de scanner un répertoire et de récupérer le nom de tous les fichiers dans un autre fichier excel. Je fais ça en VBscript mais je sèche !!!
Voici un script de ma conception qui explore RÉCURSIVEMENT un dossier (passé
en paramètre) et qui écrit cela dans EXCEL Les nom de dossiers sont en gras. Il y a respect de l'arborescence.
Tu peux améliorer (couleur, taille des caractères, ...)
Fichier "Folder2Excel.vbs" ------- couper ici ------- Set args = Wscript.Arguments if args.count=0 then wscript.quit Set fso = WScript.CreateObject("Scripting.FileSystemObject") folder=args(0) if not fso.FolderExists(folder) then Wscript.echo "Dossier inexistant" wscript.quit end if Set oXL = WScript.CreateObject("EXCEL.application") oXL.Visible = True oXL.Workbooks.Add
'-------------------------------------------------------------------- Sub Explore(dossier,niveau) set f=fso.GetFolder(dossier) set collFic=f.Files set collDir=f.SubFolders Cellule NumL,Niveau,f.Name,true,false,0 For each SubDir in CollDir Explore dossier & "" & SubDir.Name,niveau+1 Next For each Fic in collfic Cellule NumL,Niveau+1,Fic.Name,false,false,0 NumL=NumL+1 Next End Sub '----------------------------------------------- Function GetPath() Dim path path = WScript.ScriptFullName GetPath = Left(path, InStrRev(path, "")) End Function '********* sous-programmes EXCEL ********* Sub Cellule(NumL,NumC,chaine,casse,italic,size) oXL.Cells(NumL,NumC).Value = Chaine If casse or size<>0 Then CoordsÎllName(NumL,NumC) oXL.Range(Coords & ":" & Coords).Select If casse Then oXL.Selection.Font.Bold = True If italic Then oXL.Selection.Font.Italic = True If size<>0 Then oXL.Selection.Font.Size = size End If End Sub '----------------------------------------------- Function ColName(NumC) If NumC<& Then ColName=chr(64+NumC) Else n1=int(NumC/26) n2=NumC-n1*26 ColName=chr(64+n1) & chr(64+n2) End If End Function '----------------------------------------------- Function CellName(NumL,NumC) CellName=ColName(NumC) & NumL End Function ------- couper ici -------
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Jean-Claude BELLAMY
Dans le message news: , Philippe T [MS] s'est ainsi exprimé:
Bonjour,
Merci Jean-Claud : il marche très très bien !!!
Yapadkoi ! ;-)
NB: j'adore les scripts pilotant Excel, c'est très marrant !
mes préférés :
Affichage détaillé des stratégies (avec aide contextuelle + nom des clefs de la BDR) http://www.bellamyjc.org/fr/vbsdownload.html#showadm
Affichage de la liste de tous les comptes et groupes d'un ordinateur local ou distant. http://www.bellamyjc.org/fr/vbsdownload.html#accountlist
Affichage de la liste de tous les services disponibles sur un ordinateur local ou distant. http://www.bellamyjc.org/fr/vbsdownload.html#listserv
Affichage de la liste de tous les processus en cours sur un ordinateur local ou distant. (avec des détails non affichés dans le gestionnaire de tâches!) http://www.bellamyjc.org/fr/vbsdownload.html#processus
Mais je viens de me rendre compte d'un bug (sans importance) dans ce script "Folder2Excel" dû à un copier-coller intempestif : A la fin du programme principal, j'ai écrit une ligne en double : oXL.Selection.Columns.AutoFit Une seule suffit, je pense que le lecteur attentif aura rectifié de lui-même ! ;-) (cette commande sert à redimensionner automatiquement la largeur des colonnes)
[...] Explore folder,1 Virer la ligne suivante : oXL.Selection.Columns.AutoFit oXL.Cells.Select A conserver : oXL.Selection.Columns.AutoFit Wscript.quit -- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Dans le message news:uwly6cL7EHA.3616@TK2MSFTNGP11.phx.gbl ,
Philippe T [MS] <ptrotin@online.microsoft.com> s'est ainsi exprimé:
Bonjour,
Merci Jean-Claud : il marche très très bien !!!
Yapadkoi ! ;-)
NB: j'adore les scripts pilotant Excel, c'est très marrant !
mes préférés :
Affichage détaillé des stratégies
(avec aide contextuelle + nom des clefs de la BDR)
http://www.bellamyjc.org/fr/vbsdownload.html#showadm
Affichage de la liste de tous les comptes et groupes d'un
ordinateur local ou distant.
http://www.bellamyjc.org/fr/vbsdownload.html#accountlist
Affichage de la liste de tous les services disponibles sur un
ordinateur local ou distant.
http://www.bellamyjc.org/fr/vbsdownload.html#listserv
Affichage de la liste de tous les processus en cours sur un
ordinateur local ou distant. (avec des détails non affichés
dans le gestionnaire de tâches!)
http://www.bellamyjc.org/fr/vbsdownload.html#processus
Mais je viens de me rendre compte d'un bug (sans importance) dans ce script
"Folder2Excel" dû à un copier-coller intempestif :
A la fin du programme principal, j'ai écrit une ligne en double :
oXL.Selection.Columns.AutoFit
Une seule suffit, je pense que le lecteur attentif aura rectifié de lui-même
! ;-)
(cette commande sert à redimensionner automatiquement la largeur des
colonnes)
[...]
Explore folder,1
Virer la ligne suivante :
oXL.Selection.Columns.AutoFit
oXL.Cells.Select
A conserver :
oXL.Selection.Columns.AutoFit
Wscript.quit
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
Dans le message news: , Philippe T [MS] s'est ainsi exprimé:
Bonjour,
Merci Jean-Claud : il marche très très bien !!!
Yapadkoi ! ;-)
NB: j'adore les scripts pilotant Excel, c'est très marrant !
mes préférés :
Affichage détaillé des stratégies (avec aide contextuelle + nom des clefs de la BDR) http://www.bellamyjc.org/fr/vbsdownload.html#showadm
Affichage de la liste de tous les comptes et groupes d'un ordinateur local ou distant. http://www.bellamyjc.org/fr/vbsdownload.html#accountlist
Affichage de la liste de tous les services disponibles sur un ordinateur local ou distant. http://www.bellamyjc.org/fr/vbsdownload.html#listserv
Affichage de la liste de tous les processus en cours sur un ordinateur local ou distant. (avec des détails non affichés dans le gestionnaire de tâches!) http://www.bellamyjc.org/fr/vbsdownload.html#processus
Mais je viens de me rendre compte d'un bug (sans importance) dans ce script "Folder2Excel" dû à un copier-coller intempestif : A la fin du programme principal, j'ai écrit une ligne en double : oXL.Selection.Columns.AutoFit Une seule suffit, je pense que le lecteur attentif aura rectifié de lui-même ! ;-) (cette commande sert à redimensionner automatiquement la largeur des colonnes)
[...] Explore folder,1 Virer la ligne suivante : oXL.Selection.Columns.AutoFit oXL.Cells.Select A conserver : oXL.Selection.Columns.AutoFit Wscript.quit -- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *