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

Macros et VBA Excel Discussion :

Lire les propriétés d'un fichier


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 54
    Points : 55
    Points
    55
    Par défaut Lire les propriétés d'un fichier
    Bonjour,

    Je voudrais lire les informations contenu dans le champ commentaire de l'onglet "Résumé", j'ai donc utiliser ceci : (code prit ici)

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub ListeProprietesFichiers_getDetailsOf()
        'source:
        'http://www.microsoft.com/resources/documentation/windows/2000/server/
        'scriptguide/en-us/sas_fil_lunl.mspx
        '
        'Nécessite d'activer la référence Microsoft Shell Controls and Automation
        '
        Dim objShell As Shell32.Shell
        Dim strFileName As Shell32.FolderItem
        Dim objFolder As Shell32.Folder
        Dim Resultat As String, Reponse As String
        Dim i As Byte
     
        Set objShell = CreateObject("Shell.Application")
        'Répertoire cible
        Set objFolder = objShell.Namespace("P:\P\Dossier test en VBA\Copie de Nouveau dossier")
     
        'boucle sur tous les elements du repertoire
        For Each strFileName In objFolder.Items
     
            'Pour que les dosssiers ne soient pas pris en comptes
            If strFileName.IsFolder = False Then
                Resultat = ""
                If objFolder.GetDetailsOf(strFileName, 14) <> "" Then _
                    Resultat = Resultat & objFolder.GetDetailsOf(objFolder.Items, 14) _
                    & ":  " & objFolder.GetDetailsOf(strFileName, 14) & vbLf
                Reponse = MsgBox(Resultat & vbLf & vbLf & "Voulez vous continuer?", vbYesNo)
            End If
        Next
    End Sub
    Je récupère bien le champ commentaire mais que les 258 premiers caractères.
    (Dans l'affichage de l'onglet "Résumé", on peut le voir en mode "Avancé" et "Simple" dans le premier on voit la totalité du contenu "Commentaire", dans le mode "Simple" on voit que les 258 premiers caractères.)

    Etant donné que les champs commentaires que je doit lire font généralement du 600 + caractères, je voudrais savoir si il y a un autre moyen de lire cette information complètement sans ouvrir le fichier Excel.

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ne peux-tu pas n'afficher que les propriétés que tu souhaites ?
    Pour ma part, j'ai ça que j'ai dû récupérer sur le forum...
    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
    Sub PropriétéFichier(NomFich as string)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.GetFile(NomFich)
    MsgBox "Type: " & objFile.Type _
        & vbCr & "Date created: " & objFile.DateCreated _
        & vbCr & "Date last accessed: " & objFile.DateLastAccessed _
        & vbCr & "Date last modified: " & objFile.DateLastModified _
        & vbCr & "Drive: " & objFile.Drive _
        & vbCr & "Name: " & objFile.Name _
        & vbCr & "Parent folder: " & objFile.ParentFolder _
        & vbCr & "Path: " & objFile.Path _
        & vbCr & "Short name: " & objFile.ShortName _
        & vbCr & "Short path: " & objFile.ShortPath _
        & vbCr & "Size: " & objFile.Size
    End Sub
    A adapter (!)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 54
    Points : 55
    Points
    55
    Par défaut
    Merci pour cette réponse rapide, malheureusement ce n'est pas ce qu'il me faut.

    Pour être plus claire, une autre macro écrit des informations dans le champ "Commentaire" (d'environ 500-700 caractères) du fichier Excel (macro que je ne gère pas) et je doit créer une macro qui lit les champs commentaires de tous ces fichiers contenus dans un répertoire. Je sais lire le champ commentaire en ouvrant le fichier, mais j'aimerais lire le champ sans l'ouverture du fichier pour avoir un temps de traitement beaucoup plus court.

    Si vous savez comment on peut obtenir la totalité du texte contenu dans le champ Commentaire sans ouvrir le fichier ca serait cool

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    As tu essayé avec la bibliothèque DSO ?

    http://silkyroad.developpez.com/VBA/...lasseurs/#LIII


    bonne journée
    michel

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ok. J'ai testé ton code.
    Déjà, corrige cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If MsgBox(Resultat & vbCr & vbCr & _
         "Voulez vous continuer?", vbYesNo) = vbNo Then Exit For
    Ensuite, si tu mets Resultat = "", tu n'as pas à mettre Resultat = resultat & ..... Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                Resultat = ""
                If objFolder.GetDetailsOf(strFileName, 14) <> "" Then _
                    Resultat = objFolder.GetDetailsOf(objFolder.Items, 14) _
                    & ":  " & vbCr & objFolder.GetDetailsOf(strFileName, 14) & vbCr
    Ceci pour le détail.
    Tu as donc un nombre de caractères qui dépasse la capacité d'un Msgbox.
    Tu peux utiliser une zone de texte. Pour ça, jète un oeil à l'excellent tutoriel réalisé par ce non moins excellent Fring ici
    Tu peux le créer à la demande et le masquer ou le supprimer après usage

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 54
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par SilkyRoad Voir le message
    bonjour

    As tu essayé avec la bibliothèque DSO ?

    http://silkyroad.developpez.com/VBA/...lasseurs/#LIII


    bonne journée
    michel
    J'avais vu cette partie mais je n'ai pas le droit d'installer quoique ce soit sur le pc (restriction réseau de la boîte), et qu'il n'est pas installé sur le pc, je n'ai pas pu essayer.

    Merci quand même

    Ps : je vais le faire en ouvrant les fichiers pas grave, je vais juste mettre dans la notice "Cliquez sur le bouton et allez chercher un p'tit café."

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire les propriétés des fichiers Microsoft Office avec VB.net
    Par clementmarcotte dans le forum Contribuez
    Réponses: 0
    Dernier message: 03/04/2015, 05h35
  2. [XL-2010] Lire les propriétés de fichiers office fermés
    Par Fabricolo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/04/2014, 10h01
  3. [AC-2010] Comment lire les propriétés d'un fichier Accdb en VBA ?
    Par Daejung dans le forum VBA Access
    Réponses: 8
    Dernier message: 07/02/2012, 20h49
  4. Lire les propriétés d'un fichier
    Par harry_kalagan dans le forum C++Builder
    Réponses: 1
    Dernier message: 05/10/2011, 10h34
  5. Réponses: 5
    Dernier message: 20/08/2002, 18h01

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