IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Foction pour comptabiliser les sous-dossiers d'un repertoire


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Foction pour comptabiliser les sous-dossiers d'un repertoire
    Bonjour,

    J'aimerai savoir comment je pourrais faire une fonction compterep(chemin) pour qu'il me retourne dans la cellule le nombre de dossier que contient un repertoire. Je m'explique j'ai un dossier articles qui des sous-dossiers pc portable\avec dfférents sous dossiers portant nom du modeles qui contient les fiches articles. Je voudrais calculer du coup dynmiquement par le compte de dossier par catégorie.

    Merci de vos lumieres

  2. #2
    Membre averti Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 251
    Points : 310
    Points
    310

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Points : 367
    Points
    367
    Par défaut macro excel vba
    Bonjour,
    Il faut insérer une macro vba

    Sub BoucleÀTraversLesFichiers()

    Dim oFSO As Object
    Dim oDossier As Object
    Dim oFichier As Object
    Dim i As Integer

    Set oFSO = CreateObject("Scripting.FileSystemObject")

    Set oDossier = oFSO.GetFolder("dossier")

    For Each oFichier In oDossier.Files

    Cells(i + 1, 1) = oFichier.Name
    'mettre un compteut

    i = i + 1

    Next oFichier
    cells(?) = I

    End Sub

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    pourquoi mettre du code VBA ici (qui ne fonctionne d'ailleurs que sous windows) alors que dans le lien d 'Amélie Ladoque la procédure ListerRepertoire_V02 fait le travail.
    Voici la procédure modifiée pour compter le nombre de dossiers et afficher tous les dossiers en une seule fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub listerRepertoires_JP
    Dim Chemin As String , NomObj As String 
    Dim oSimpleFileAccess As Object 
    Dim i As Integer  
    Dim Tableau() , ListeRep As String, nbRep As Integer 
    Chemin ="D:\tmp"
    oSimpleFileAccess = CreateUnoService( "com.sun.star.ucb.SimpleFileAccess" )  
    Tableau = oSimpleFileAccess.getFolderContents(ConvertToURL( Chemin ), True )  
     ListeRep = ""
     nbRep = 0
    For i = 1 To UBound(Tableau) + 1 
        NomObj = Tableau( i-1 )    
        If oSimpleFileAccess.isFolder( NomObj ) Then 
            ListeRep =  ListeRep + ConvertFromURL( NomObj ) + Chr(13) + Chr(10)  
            nbRep = nbRep + 1
        End If
    Next i 
    MsgBox  "nbRep: " + nbRep  + Chr(13) + chr(10) + ListeRep
    oSimpleFileAccess = Nothing
    End Sub
    En fonction personnalisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function CompteRep(Chemin As String) As Integer
    Dim NomObj As String, oSimpleFileAccess As Object 
    Dim i As Integer, Tableau()   
    oSimpleFileAccess = CreateUnoService( "com.sun.star.ucb.SimpleFileAccess" )  
    Tableau = oSimpleFileAccess.getFolderContents(ConvertToURL( Chemin ), True )  
    CompteRep = 0
    For i = 1 To UBound(Tableau) + 1 
        NomObj = Tableau( i-1 )    
        If oSimpleFileAccess.isFolder( NomObj ) Then
            CompteRep = CompteRep + 1
        End If
    Next i 
    oSimpleFileAccess = Nothing
    End Function
    Nom : CompteRep.png
Affichages : 74
Taille : 5,0 Ko
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Merci pour ces propositions

Discussions similaires

  1. Lister les sous dossiers d un répertoire
    Par mattmax55 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 24/02/2020, 23h02
  2. Code ne fonctionne pas pour les sous dossiers
    Par archi57 dans le forum VBScript
    Réponses: 10
    Dernier message: 18/02/2012, 15h24
  3. Lister tous les sous-dossiers d'un répertoire
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 16/06/2011, 04h34
  4. [WS 2008] Perte des paramètres de sécurité pour les sous-dossiers
    Par Gloup dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 26/05/2010, 14h21
  5. [Librairies] Comment gérer les sous dossiers INBOX avec IMAP
    Par Cr@zyDeep dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/05/2006, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo