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

Ecrire dans fichier excel

4 réponses
Avatar
Mystique
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 !!!
Merci pour votre aide ;o)

4 réponses

Avatar
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'

import os,sys,win32com.client

def excelEcritListe(lst):
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = 0
excel.Workbooks.Add()
excel.Range(excel.Cells(1,2),excel.Cells(len(lst),2)).Value = lst
excel.Visible = 1
#excel.ActiveWorkbook.SaveAs(r'c:titi.xls')
del excel

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
Avatar
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


NumL=2
Numc=1
Explore folder,1
oXL.Selection.Columns.AutoFit
oXL.Cells.Select
oXL.Selection.Columns.AutoFit
Wscript.quit

'--------------------------------------------------------------------
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
*

Avatar
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


NumL=2
Numc=1
Explore folder,1
oXL.Selection.Columns.AutoFit
oXL.Cells.Select
oXL.Selection.Columns.AutoFit
Wscript.quit

'--------------------------------------------------------------------
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
*





Avatar
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
*