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

Contribuez Discussion :

Lire et modifier les propriétés des fichiers Office [Fait]


Sujet :

Contribuez

  1. #1
    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 Lire et modifier les propriétés des fichiers Office
    bonjour


    quelques exemples pour lire et modifier les propriétés des fichiers Office



    Lire les propriétés d'un classeur par builtinDocumentProperties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub infosClasseurBuiltinDocumentProperties()
    Dim Valeur As DocumentProperty
    Dim R As Byte
     
    On Error Resume Next
    R = 1
    For Each Valeur In ActiveWorkbook.BuiltinDocumentProperties
        Cells(R, 1) = Valeur.Name
        Cells(R, 2) = Valeur.Value
        R = R + 1
    Next
    End Sub



    Modifier le nom de l'auteur dans les propriétés du classeur , en utilisant BuiltinDocumentProperties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.BuiltinDocumentProperties("Author").Value = "xld"



    Ajouter une propriété personnalisée dans le classeur actif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub ajouterProprietePersonnalisee()
    ActiveWorkbook.CustomDocumentProperties.Add Name:="infoX", _
    Type:=msoPropertyTypeNumber, LinkToContent:=False, Value:=1965
    'Les types de données possibles :
    'msoPropertyTypeNumber:Valeurs entieres
       '(si vous insérez 196.4 , c'est 196 qui sera enregistré )
    'msoPropertyTypeFloat:Valeurs numériques
    'msoPropertyTypeBoolean: Vrai ou Faux
    'msoPropertyTypeDate: Dates et heures
    'msoPropertyTypeString :Texte
    End Sub



    Boucler sur toutes les propriétés personnalisées du classeur actif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub bouclerSurToutesLesProprietesPersonnalisees()
    Dim Cp As DocumentProperty
     
    If ActiveWorkbook.CustomDocumentProperties.Count = 0 Then Exit Sub
     
    For Each Cp In ActiveWorkbook.CustomDocumentProperties
        MsgBox Cp.Name & vbLf & Cp.Value
    Next Cp
    End Sub



    Lire une propriété personnalisée spécifique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ActiveWorkbook.CustomDocumentProperties("infoX").Value



    Modfifier une propriété personnalisee

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.CustomDocumentProperties("infoX").Value = 1997



    Supprimer une propriété personnalisée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.CustomDocumentProperties("infoX").Delete





    Afficher les propriétés de tous les fichiers d'un répertoire, sans les ouvrir

    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
    Sub proprietesFichiers()
    'source:
    ' http://www.microsoft.com/resources/documentation/windows/2000/server/
    'scriptguide/en-us/sas_fil_lunl.mspx
    '
    'Necessite d'activer la reference Microsoft Shell Controls and Automation
    '
    Dim objShell As Object, strFileName As Object
    Dim objFolder As Folder
    Dim Resultat As String
    Dim i As Byte
     
    Set objShell = CreateObject("Shell.Application")
    'repertoire cible
    Set objFolder = objShell.nameSpace("C:\Documents and Settings\michel\dossier")
     
    'boucle sur tous les elements du repertoire
    For Each strFileName In objFolder.Items
        'pour que les sous dosssiers ne soient pas pris en comptes
        If strFileName.isFolder = False Then
        Resultat = ""
            For i = 0 To 34
            Resultat = Resultat & objFolder.getDetailsOf(strFileName, i) & vbLf
            Next
        MsgBox Resultat
        End If
    Next
    End Sub




    Lire quelques propriétés d'un classeur sans l'ouvrir : utilisation de GetFile

    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
    Sub proprietesClasseur()
    Dim Cible As Object, Valeur As Object
    Dim Resultat As String, Fichier As String
     
    Fichier = "C:\Classeur2.xls" 'adpater le chemin
    Set Cible = createObject("Scripting.fileSystemObject")
    Set Valeur = Cible.getFile(Fichier)
     
    Resultat = "Chemin : " & Valeur.parentFolder & Chr(10) & Chr(10) & _
    "Nom et chemin fichier : " & Fichier & Chr(10) & Chr(10) & _
    "Date creation : " & Valeur.dateCreated & Chr(10) & Chr(10) & _
    "Derniere modification : " & Valeur.dateLastModified & Chr(10) & Chr(10) & _
    "Taille classeur : " & Valeur.Size & " octets"
     
    Msgbox Resultat
    End Sub




    Afficher toutes les propriétés d'un classeur sans l'ouvrir

    La procédure utilise la librairie DSO oleDocument Properties Reader 2.0
    Si elle n'est pas installée sur ton poste , vous pouvez la télécharger sur le site Microsoft :

    http://support.microsoft.com/default...;EN-US;Q224351

    Remarque :
    Cette librairie fonctionne pour tous les documents Office ( Excel, Word , Powerpoint …)


    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
    Sub lireProprietesClasseur()
    'necessite d'activer la reference DSO OleDocument Properties Reader 2.0
    'http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q224351
    Dim DSO As DSOFile.OleDocumentProperties
     
    Set DSO = New DSOFile.OleDocumentProperties
     
    'le fichier doit etre fermé !
    DSO.Open sfilename:="C:\Documents and Settings\michel\dossier\leClasseur.xls"
    MsgBox DSO.SummaryProperties.Author & vbLf & DSO.SummaryProperties.Comments
    '
    'Les autres propriétés:
    '
    'ApplicationName 'Author 'ByteCount 'Category 'CharacterCount 
    'CharacterCountWithSpaces'Comments 'Company 'DateCreated 
    'DateLastPrinted 'DateLastSaved 'HiddenSlideCount
    'Keywords 'LastSavedBy 'LineCount 'Manager 'MultimediaClipCount 
    'NoteCount 'PageCount 'ParagraphCount 'PresentationFormat 
    'RevisionNumber 'SharedDocument 'SlideCount
    'Subject 'Template 'Title 'TotalEditTime 'Version 'WordCount
    '
    DSO.Close
    End Sub



    Modifier les propriétés d'un classeur sans l'ouvrir

    Exemple pour modifier le champ "commentaire" d'un fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub modifierProprietesClasseur()
    'necessite d'activer la reference DSO OleDocument Properties Reader 2.0
    'http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q224351
    Dim DSO As DSOFile.OleDocumentProperties
     
    Set DSO = New DSOFile.OleDocumentProperties
     
    'le fichier doit etre fermé !
    DSO.Open sfilename:="C:\Documents and Settings\michel\monFichier.xls"
    DSO.SummaryProperties.Comments = "mon nouveau commentaire"
    DSO.Save
    DSO.Close
    End Sub



    Ajouter une propriété personnalisée au classeur sans ouvrir le fichier

    La procédure utilise aussi la librairie DSO oleDocument Properties Reader 2.0 et fonctionne pour les autres types de documents Office

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AjouterProprietesPersonnalisees()
    Dim DSO As DSOFile.OleDocumentProperties
     
    Set DSO = New DSOFile.OleDocumentProperties
     
    'le fichier doit etre fermé !
    DSO.Open sfilename:="C:\Documents and Settings\michel\monfichier.xls"
    DSO.CustomProperties.Add "maPropriete", "Bonjour"
    DSO.Save
    DSO.Close
    End Sub



    Lire une propriété personnalisée sans ouvrir le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub LireProprietesPersonnalisees()
    'necessite d'activer la reference DSO OleDocument Properties Reader 2.0
    'http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q224351
    Dim DSO As DSOFile.OleDocumentProperties
     
    Set DSO = New DSOFile.OleDocumentProperties
     
    'le fichier doit etre fermé !
    DSO.Open sfilename:="C:\Documents and Settings\michel\dossier\monClasseur.xls"
    MsgBox DSO.CustomProperties.Item("LeNomDeMaProprietePersonnalisee").Value
    'ou ( l'index de la 1ere propriete personnalisée est 0 )
    'MsgBox DSO.CustomProperties.Item(0).Value
    DSO.Close
    End Sub





    Passer un classeur en lecture seule , sans l'ouvrir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub passerClasseur_lectureSeule()
    'necessite d'activer la reference Microsoft Scriping Runtime
    Dim Fs As FileSystemObject
    Dim F As File
     
    Set Fs = CreateObject("Scripting.FileSystemObject")
    Set F = Fs.GetFile("C:\classeur1.xls")
    F.Attributes = F.Attributes + ReadOnly
    End Sub


    La fonction FileDateTime

    Renvoie la date et l'heure de création ou de dernière modification d'un fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox FileDateTime("C:\monClasseur.xls")



    bonne soiree
    michel
      0  0

  2. #2
    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
    bonsoir

    pour info, j'ai complèté les exemples sur cette page

    http://silkyroad.developpez.com/VBA/...etesClasseurs/


    bonne soirée
    michel
      0  0

  3. #3
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    On publie comme tuto ou comme Q/R FAQ ?
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension
      0  0

  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
    Q/R FAQ ...;o)
      0  0

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Une entrée FAQ pour la prochaine MAJ et annonce du tutoriel

    sujet clos, Merci
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension
      0  0

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. Modifier les propriétés des documents office
    Par justgreat dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 02/05/2010, 15h31
  4. Empaquetage : modifier les chemins des fichiers inclus
    Par AndréPe dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 21/08/2008, 11h56
  5. Option Sécurité dans les propriétés des fichiers?
    Par kirout dans le forum Windows XP
    Réponses: 2
    Dernier message: 12/02/2008, 22h19

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