[Calc] lister le contenu d'un répertoire
Modérateur : Vilains modOOs
Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
-
- Membre cOOnfirmé
- Messages : 244
- Inscription : 17 janv. 2007 19:18
- Localisation : Lille(59) - Lesboeufs (80)
[Calc] lister le contenu d'un répertoire
Bonjour
Une méthode pour sélectionner et lister le contenu d'un répertoire.
Le code est largement commenté.
Une méthode pour sélectionner et lister le contenu d'un répertoire.
Le code est largement commenté.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Amicalement Philippe BRONCHART
Win 10 Libre office 5.0 (perso)
Win 10 Libre office 5.0 (perso)
-
- Membre hOOnoraire
- Messages : 177
- Inscription : 28 juil. 2010 13:21
Re: [Calc] lister le contenu d'un répertoire
Bonjour,
Super ce code, ça m'a bien aidé à faire ce que je voulais C'était beaucoup plus simple que ce que je pensais en fait, merci encore
Je pensais qu'il fallait créer et charger une nouvelle boite de dialogue..
Super ce code, ça m'a bien aidé à faire ce que je voulais C'était beaucoup plus simple que ce que je pensais en fait, merci encore
Je pensais qu'il fallait créer et charger une nouvelle boite de dialogue..
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Windows XP professionnel SP3 + OpenOffice 3.3
Ubuntu 10.04 LTS - Le lynx Lucide + GNOME 2.30.2 + OpenOffice 3.2.1
Kubuntu 10.10 + KDE 4.5.1 + OpenOffice 3.2.0
Mac OS X - Snow Leopard + OpenOffice 3.2.1 (Intel)
Ubuntu 10.04 LTS - Le lynx Lucide + GNOME 2.30.2 + OpenOffice 3.2.1
Kubuntu 10.10 + KDE 4.5.1 + OpenOffice 3.2.0
Mac OS X - Snow Leopard + OpenOffice 3.2.1 (Intel)
-
- Fraîchement OOthentifié
- Messages : 1
- Inscription : 23 nov. 2010 09:44
Re: [Calc] lister le contenu d'un répertoire
Merci pour ce code, gros gain de temps.
Deux petites choses tout de même, pour fonctionner sous linux ou mac, il faut modifier la partie création du chemin, et mettre "/" (unix) à le place de "\" (dos) chemin
Remplacer
par
et pour ceux qui veulent le listing du nombre complet de fichier (il en manque un par défaut), il faut définir X à 1 avant d'entrer dans la boucle :
Deux petites choses tout de même, pour fonctionner sous linux ou mac, il faut modifier la partie création du chemin, et mettre "/" (unix) à le place de "\" (dos) chemin
Remplacer
Code : Tout sélectionner
'on fabrique le chemin de direction
Direction=dir((lerep)&"\*.*",0)' les fichiers du repertoire ( si on veut du .ods on remplace ((lerep)&"\*.*",0) par ((lerep)&"\ods.*",0)
Code : Tout sélectionner
'on fabrique le chemin de direction
Direction=dir((lerep)&"/*.*",0)' les fichiers du repertoire ( si on veut du .ods on remplace ((lerep)&"\*.*",0) par ((lerep)&"\ods.*",0)
Code : Tout sélectionner
MonDoc = ThisComponent 'Sélectionne le document en cours
MesFeuilles=MonDoc.sheets ' les feuilles du classeur
MaFeuille = Mesfeuilles.GetByName("Feuille1")' la feuille1
'On défini X à 1 pour commencer à la cellule 1 (et pas 0) :)
X = 1
OpenOffice.org 3.2.1 / ubuntu 10.04.1
-
- ManitOOu
- Messages : 3028
- Inscription : 30 avr. 2011 23:08
- Localisation : Casablanca (Maroc)
Re: [Calc] lister le contenu d'un répertoire
Bonjour,
Je viens de constater que la 3ème modification proposée dans le message précédent ne résout pas le problème du premier élément manquant (il est donné par le premier appel de Dir()) : la solution est de placer l'appel suivant en fin de boucle, ce qui donne :
Je viens de constater que la 3ème modification proposée dans le message précédent ne résout pas le problème du premier élément manquant (il est donné par le premier appel de Dir()) : la solution est de placer l'appel suivant en fin de boucle, ce qui donne :
Code : Tout sélectionner
'Cette macro va lister sous calc le contenu d'un répertoire
'Philippe Bronchart 2008 (modifications par alhazred, signalées par ***)
Sub Listerunrepertoire
Dim MonDoc as object, Mesfeuilles as object, MaFeuille as object
Dim Dossier As object , Valeur As Integer , lerep as string, Ocurseur as object
Dim Direction As string , Resultat As String
MonDoc = ThisComponent 'Sélectionne le document en cours
MesFeuilles=MonDoc.sheets ' les feuilles du classeur
MaFeuille = Mesfeuilles.GetByName("feuille1")' la feuille1
'la boite de dialogue pour choisir le dossier
Dossier = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker") 'création du service sélection d'un fichier
Valeur = Dossier.Execute()
'si il y au moins un choix
If Valeur = 1 Then lerep=ConvertFromUrl(Dossier.getDirectory()) Else Exit Sub '*** on convertit l'URL, sinon on ne fait rien
'on fabrique le chemin de direction
Direction=dir((lerep)&"\*",0) '*** tous les fichiers du répertoire
'Direction=dir((lerep)&"\*.ods",0) '*** seulement les classeurs .ods
'Direction=dir((lerep)&"\*",16) '*** seulement les sous-répertoires
'on fait une boucle tant qu'il il y a des fichiers
oCurseur = MaFeuille.createCursor '*** création du curseur avant la boucle (inutile de répéter)
x = 1 '*** si on veut commencer en ligne 2
Do While Len(Direction) > 0
MaFeuille.getCellByPosition(0,x).string = Direction ' on écrit en A2 feuille1 (0,X) où x = 1 au départ puis 2 3 4 5 .....
X=X+1 ' on ajoute 1 à X
Direction=Dir() '*** élément suivant
Loop ' on boucle
End Sub
À bientôt
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
LibO 4.1.5.3 et AOO 4.0.1 sous Windows 7, MRI et SDK pour les macros.
Et la sauvegarde incrémentée, c'est sympa !
-
- Membre OOrganisé
- Messages : 79
- Inscription : 02 juin 2012 11:54
Re: [Calc] lister le contenu d'un répertoire
Merci à tous .
Grâce à cet exemple j'ai pu conclure une petite macro de renommage de fichiers sur mon disque .
Cordialement
Grâce à cet exemple j'ai pu conclure une petite macro de renommage de fichiers sur mon disque .
Cordialement
Libre Office Version 4.1.5.3 sous W8.1
Libre Office Version 3.5.4.2 sous Ubuntu 12.04 /64
Libre Office Version 3.5.4.2 sous Ubuntu 12.04 /64
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Calc] lister le contenu d'un répertoire
Bonsoir
Juste deux petites remarques. Selon la configuration de l'utilisateur menu Options > Général Utiliser les boites de dialogue (coché ou décoché).
A+
Juste deux petites remarques. Selon la configuration de l'utilisateur menu Options > Général Utiliser les boites de dialogue (coché ou décoché).
- La macro peut peut retourner les fichiers du répertoire au-dessus.
Il suffit de changer la ligne :Par :Code : Tout sélectionner
Dossier = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker") 'création du service sélection d'un fichier
Code : Tout sélectionner
Dossier = CreateUnoService("com.sun.star.ui.dialogs.OfficeFolderPicker") 'création du service sélection d'un fichier
- Pour que la macro puisse fonctionner sous Windows et sous Linux, ajouter :
Code : Tout sélectionner
'GetGUIType est en Integer en cas d'utilisation avec l'option Explicit If GetGUIType = 1 Then ' 1 pour Windows, 4 pour GNU_Linux, Direction = dir((lerep)&"\*.*",0)' les fichiers du repertoire ( si on veut du .ods on remplace ((lerep)&"\*.*",0) par ((lerep)&"\ods.*",0) Else 'pour GNU_Linux Direction = dir((lerep)&"/*.*",0)' les fichiers du repertoire ( si on veut du .ods on remplace ((lerep)&"/*.*",0) par ((lerep)&"/ods.*",0) End If
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- HédOOniste
- Messages : 1527
- Inscription : 28 sept. 2008 12:56
- Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ
Re: [Calc] lister le contenu d'un répertoire
Bonjour Piaf et tous les autres
Pour que la macro puisse fonctionner sous Windows et sous Linux...
le plus simple à mon avis est d'utiliser convertToUrl puisque la fonction Dir accepte la notation URL.
Pour que la macro puisse fonctionner sous Windows et sous Linux...
le plus simple à mon avis est d'utiliser convertToUrl puisque la fonction Dir accepte la notation URL.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)