Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

FAQ ExcelConsultez toutes les FAQ

Nombre d'auteurs : 46, nombre de questions : 845, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireLes classeursLes propriétés du classeur

Les propriétés prédéfinies sont accessibles en utilisant le Menu principal d'Excel: Fichier/Propriétés.

Image non disponible


Vous pouvez consulter (ou modifier pour certains d'entre eux) les champs contenus dans les différents onglets.

* Général
* Résumé
* Statistiques
* Contenu
* Personnalisation


Les propriétés contiennent des informations permettant d'identifier un fichier (Titre descriptif, nom de l'auteur, le sujet et les mots clés qui identifient des rubriques ou d'autres informations importantes dans le fichier). Utilisez les propriétés d'un document pour afficher les informations relatives à un fichier ou organiser vos fichiers de manière à les retrouver facilement par la suite. Vous pouvez également rechercher des documents en fonction de leurs propriétés.

* Les propriétés automatiquement mises à jour comprennent les statistiques qui sont conservées par vos applications Microsoft Office, telles que la taille du fichier et les dates de création et de dernière modification des fichiers.

* Les champs des propriétés prédéfinies (Auteur, Titre, Sujet, Commentaire...) sont des zones de texte libre que vous pouvez compléter manuellement.

* Les propriétés personnalisées sont créés par l'utilisateur. Vous pouvez affecter un texte, une heure ou une valeur numérique aux propriétés personnalisées, ainsi que les valeurs booléennes. Vous pouvez faire un choix dans une liste de noms suggérés ou définir vos propres noms.



Si vous souhaitez afficher automatiquement la boîte de dialogue Propriétés lors de l'enregistrement des classeurs, afin de compléter les champs d'information:
Menu Outils/Options/Onglet "Général"/Cochez l'option "Afficher la fenêtre des propriétés."



Il est possible de lister par macro les propriétés prédéfinies d'un classeur, en utilisant la propriété BuiltinDocumentProperties.

Cet exemple permet de lister les propriétés du classeur actif dans une feuille de calcul.

Vba
Sélectionnez

Sub Test()
    infosClasseurBuiltinDocumentProperties ActiveWorkbook
End Sub
 
 
Sub infosClasseurBuiltinDocumentProperties(Wb As Workbook)
    Dim Valeur As DocumentProperty
    Dim i As Byte
 
    On Error Resume Next
 
    'Boucle sur la collection de propriétés prédéfinies
    For Each Valeur In Wb.BuiltinDocumentProperties
        i = i + 1
        'Insère le nom des propriétés dans la colonne A
        ThisWorkbook.Worksheets(1).Cells(i, 1) = Valeur.Name
        'Insère le contenu de la propriété dans la colonne B
        ThisWorkbook.Worksheets(1).Cells(i, 2) = Valeur.Value
    Next
 
    ThisWorkbook.Worksheets(1).Columns("A:B").AutoFit
End Sub




Un autre exemple pour lire une propriété particulière:

Vba
Sélectionnez
 
'Récupère le contenu de la propriété "Auteur"
MsgBox ThisWorkbook.BuiltinDocumentProperties("Author").Value
 
'Il est aussi possible d'appeler la propriété en utilisant l'index de la collection.
'MsgBox ThisWorkbook.BuiltinDocumentProperties(3).Value
Créé le 14 avril 2007  par SilkyRoad

Si vous souhaitez modifier les propriétés d'un classeur par macro, utilisez:

Vba
Sélectionnez

'Modifie le champ "Commentaires" 
ThisWorkbook.BuiltinDocumentProperties("Comments").Value = "Nouveau commentaire"
Créé le 14 avril 2007  par SilkyRoad

Il est possible d'ajouter une propriété personnalisée par macro.

Les propriétés personnalisées permettent de stocker les informations complémentaires de votre choix. Ces informations sont ensuite accessibles dans l'onglet "Personnalisation".

L'argument Type spécifie le type de données pour la nouvelle propriété. Attention: Vous obtiendrez un message d'erreur (Incompatibilité de type) si vous essayez d'insérer des données textes dans une propriété définie pour des valeurs numériques.

Les types de données possibles:
msoPropertyTypeNumber: Valeurs entières (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

Vba
Sélectionnez

Sub ajouterProprietePersonnalisee()
    ThisWorkbook.CustomDocumentProperties.Add Name:="infoX", _
        Type:=msoPropertyTypeNumber, LinkToContent:=False, Value:=1965
End Sub
Créé le 14 avril 2007  par SilkyRoad

Cet exemple permet de lire une propriété personnalisée dans le classeur.

Vba
Sélectionnez

MsgBox ThisWorkbook.CustomDocumentProperties("infoX").Value




Il est aussi possible de boucler sur la collection de propriétés personnalisées:

Vba
Sélectionnez

Sub bouclerSurToutesLesProprietesPersonnalisees()
    Dim Cp As DocumentProperty
 
    'Vérifie qu'il y a des propriétés personnalisées dans le classeur
    If ThisWorkbook.CustomDocumentProperties.Count = 0 Then Exit Sub
 
    For Each Cp In ThisWorkbook.CustomDocumentProperties
        MsgBox Cp.Name & vbLf & Cp.Value
    Next Cp
End Sub




La procédure ci dessous permet de modifier une propriété personnalisee:

Vba
Sélectionnez

ThisWorkbook.CustomDocumentProperties("infoX").Value = 1997




La macro suivante supprime une propriété personnalisée:

Vba
Sélectionnez

ThisWorkbook.CustomDocumentProperties("infoX").Delete




Pour supprimer la collection de propriétés personnalisées, utilisez:

Vba
Sélectionnez

Sub SupprimeCollection_ProprietesPersonnalisees()
    Dim Cst As DocumentProperty
 
    For Each Cst In ThisWorkbook.CustomDocumentProperties
        Cst.Delete
    Next Cst
End Sub
Créé le 14 avril 2007  par SilkyRoad

Les procédures suivantes utilisent la librairie DSO oleDocument Properties Reader 2.0
Si elle n'est pas installée sur votre poste, vous pouvez la télécharger sur le site de Microsoft.

La librairie DSO oleDocument Properties Reader 2.0


Cette librairie permet de lire et modifier les propriétés des documents Office (Excel, Word, Powerpoint...) sans les ouvrir.

Vba
Sélectionnez

Sub LireProprietesClasseur_DSO()
    'Nécessite d'activer la référence 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
 
    'Attention: Le fichier doit être préalablement fermé!
    DSO.Open sfilename:="C:\Documents and Settings\michel\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
Créé le 14 avril 2007  par SilkyRoad

Voici un exemple pour modifier le champ "Commentaires".

Vba
Sélectionnez

Sub modifierProprietesClasseur_DSO()
    'Nécessite d'activer la référence 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
 
    'Attention: Le fichier doit être préalablement fermé!
    DSO.Open sfilename:="C:\Documents and Settings\michel\leClasseur.xls"
    DSO.SummaryProperties.Comments = "mon nouveau commentaire"
    DSO.Save
    DSO.Close
End Sub
Créé le 14 avril 2007  par SilkyRoad
Vba
Sélectionnez

Sub AjouterProprietePersonnalisee_DSO()
    Dim DSO As DSOFile.OleDocumentProperties
 
    Set DSO = New DSOFile.OleDocumentProperties
 
    'Attention: Le classeur doit être préalablement fermé!
    DSO.Open sfilename:="C:\Documents and Settings\michel\leClasseur.xls"
    DSO.CustomProperties.Add "maProprietePerso", "Bonjour"
    DSO.Save
    DSO.Close
End Sub
Créé le 14 avril 2007  par SilkyRoad

Cet exemple permet de lire la propriété personnalisée nommée maProprietePerso dans un classeur fermé.
La procédure utilise la bibliothèque "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 de Microsoft.

Vb
Sélectionnez

Sub LireProprietesPersonnalisees_DSO()
    Dim DSO As DSOFile.OleDocumentProperties
 
    Set DSO = New DSOFile.OleDocumentProperties
 
    'Attention: Le fichier doit être préalablement fermé!
    DSO.Open sfilename:="C:\Documents and Settings\michel\leClasseur.xls"
    MsgBox DSO.CustomProperties.Item("maProprietePerso").Value
    'Il est aussi possible de lire une propriété en utilisant
    'les index de la collection:
    'MsgBox DSO.CustomProperties.Item(0).Value
    DSO.Close
End Sub
Créé le 14 avril 2007  par SilkyRoad

Cliquez sur le bouton Office.
Menu "Préparer".
Sélectionnez "Propriétés".
Un nouveau panneau s'affiche. Vous pouvez y saisir ou lire quelques propriétés.
Pour afficher la boîte de dialogue identique aux versions précédentes d'Excel et avoir accès à tous les types de propriétés, cliquez sur "Propriétés du document" dans l'angle supérieur gauche du panneau, et sélectionnez l'option "Propriétés avancées".


Vous pouvez également afficher ou masquer le panneau de propriétés, par macro:

Vba
Sélectionnez

Sub AfficherMasquer_PanneauProprietes()
    With Application
        If .DisplayDocumentInformationPanel = False Then
            .DisplayDocumentInformationPanel = True
            Else
            .DisplayDocumentInformationPanel = False
        End If
    End With
End Sub
Mis à jour le 19 février 2008  par SilkyRoad

Les cellules contenant les données à afficher dans les propriétés du classeur doivent préalablement être nommées.

Ensuite, utilisez le bouton "Office".
Menu "Préparer".
Sélectionnez l'option "Propriétés".
Cliquez sur le bouton "Propriétés du document", en haut à gauche dans le bandeau qui apparait à l'écran.
Propriétés avancées.
Onglet "Personnalisation".
Spécifiez un nom pour votre propriété (champ "Nom").
Cochez l'option "Cellule liée".
Le champ de saisie "Valeur" devient alors une liste déroulante "Source" qui contient l'ensemble des cellules et plages nommées du classeur.
Sélectionnez un nom dans la liste déroulante (si vous choisissez une plage nommée, c'est la première cellule de la zone qui sera prise en compte).
Cliquez sur le bouton "Ajouter" pour valider.


Pour effectuer cette oprération par VBA :

Vba
Sélectionnez

ActiveWorkbook.CustomDocumentProperties.Add Name:="NomPropriete", _
    LinkToContent:=True, LinkSource:="NomCellule", _
    Type:=msoPropertyTypeString
Mis à jour le 22 mars 2009  par SilkyRoad
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.