VBAexcel ProprietesClasseurs
VBAexcel ProprietesClasseurs
VBAexcel ProprietesClasseurs
par SilkyRoad
Ce document prsente quelques mthodes pour lire et modifier les proprits des Classeurs Excel. Certains des exemples proposs sont utilisables pour d'autres types de fichiers. Toutes les procdures ont t testes en utilisant Excel2002.
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
I - Introduction II - Les proprits d'un classeur ouvert II-A - Lire les proprits prdfinies II-B - Modifier les proprits prdfinies II-C - Ajouter une proprit personnalise II-D - Lire Les proprits personnalises II-E - Modifier une proprit personnalisee II-F - Supprimer une proprit personnalise III - Les proprits d'un classeur ferm (Utilisation de la bibliothque DSO) III-A - Afficher les proprits prdfinies d'un classeur III-B - Modifier les proprits d'un classeur III-C - Ajouter une proprit personnalise dans un classeur III-D - Lire une proprit personnalise IV - Lire les proprits de tous types de fichiers IV-A - Utiliser la bibliothque Microsoft Scripting Runtime (FileSystemObject) IV-B - La fonction FileDateTime IV-C - Lister les proprits avances IV-D - Utiliser La classe CIM_DataFile V - Tlchargement
-2Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
I - Introduction
Tous les types de fichiers possdent des proprits. Vous pouvez les visualiser depuis l'explorateur Windows en faisant un clic droit sur le fichier puis en choisissant l'option "Proprits". En fonction du type de fichier slectionn, un ou plusieurs onglets sont visibles dans la bote de dialogue (Gnral, Personnaliser, Rsum, Version, Compatibilit, Signatures numriques, Rcapitulatif, Statistiques...). Chaque onglet renvoie des informations spcifiques. L'onglet "Gnral" est commun pour tous les types de fichiers.
-3Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
-4Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Ce document prsente quelques mthodes pour lire et modifier les informations contenues dans ces onglets.
-5Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
II - Les proprits d'un classeur ouvert II-A - Lire les proprits prdfinies
Les proprits prdfinies sont accessibles en utilisant le Menu principal d'Excel: Fichier/Proprits.
-6Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Vous pouvez consulter (ou modifier pour certains d'entre eux) les champs contenus dans les diffrents onglets.
-7Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Les proprits contiennent des informations permettant d'identifier un fichier (Titre descriptif, nom de l'auteur, le sujet et les mots cls qui identifient des rubriques ou d'autres informations importantes dans le fichier). Utilisez les proprits d'un document pour afficher les informations relatives un fichier ou organiser vos fichiers de manire les retrouver facilement par la suite. Vous pouvez galement rechercher des documents en fonction de leurs proprits.
* Les proprits automatiquement mises jour comprennent les statistiques qui sont conserves par vos applications Microsoft Office, telles que la taille du fichier et les dates de cration et de dernire modification des fichiers.
* Les champs des proprits prdfinies existent dj (Auteur,Titre,Sujet,Commentaire...), mais vous devez entrer un texte libre pour complter les champs.
* Les proprits personnalises sont des proprits que vous dfinissez. Vous pouvez affecter un texte, une heure ou une valeur numrique aux proprits personnalises, ainsi que les valeurs boolennes. Vous pouvez faire un choix dans une liste de noms suggrs ou dfinir vos propres noms.
Si vous souhaitez afficher automatiquement la bote de dialogue Proprits lors de l'enregistrement des classeurs, afin de complter les champs d'information: Menu Outils/Options/Onglet "Gnral"/Cochez l'option "Afficher la fentre des proprits."
Il est possible de lister par macro les proprits prdfinies d'un classeur, en utilisant la proprit BuiltinDocumentProperties.
Cet exemple permet de lister les proprits du classeur actif dans une feuille de calcul.
-8Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Vba
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 proprits prdfinies For Each Valeur In Wb.BuiltinDocumentProperties i = i + 1 'Insre le nom des proprits dans la colonne A ThisWorkbook.Worksheets(1).Cells(i, 1) = Valeur.Name 'Insre le contenu de la proprit dans la colonne B ThisWorkbook.Worksheets(1).Cells(i, 2) = Valeur.Value Next ThisWorkbook.Worksheets(1).Columns("A:B").AutoFit End Sub
Les proprits personnalises permettent de stocker les informations complmentaires de votre choix. Ces informations sont ensuite accessibles dans l'onglet "Personnalisation".
-9Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
L'argument Type spcifie le type de donnes pour la nouvelle proprit. Attention: Vous obtiendrez un message d'erreur (Incomptabilit de type) si vous essayer d'insrer des donnes textes dans une proprit dfinie pour des valeurs numriques.
Les types de donnes possibles: msoPropertyTypeNumber: Valeurs entires (Si vous insrez 196.4, c'est 196 qui sera enregistr) msoPropertyTypeFloat: Valeurs numriques msoPropertyTypeBoolean: Vrai ou Faux msoPropertyTypeDate: Dates et heures msoPropertyTypeString: Texte
Vba
Sub ajouterProprietePersonnalisee() ThisWorkbook.CustomDocumentProperties.Add Name:="infoX", _ Type:=msoPropertyTypeNumber, LinkToContent:=False, Value:=1965 End Sub
- 10 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
- 11 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Cette bibliothque permet de lire et modifier les proprits des documents Office (Excel, Word, Powerpoint...) sans les ouvrir.
- 12 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Vb
DSO.Save DSO.Close End Sub
- 13 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
IV - Lire les proprits de tous types de fichiers IV-A - Utiliser la bibliothque Microsoft Scripting Runtime (FileSystemObject)
La bibliothque Microsoft Scriping Runtime permet de rcuprer les proprits d'un fichier, principalement les informations qui apparaissent dans l'onglet "Gnral". Vb
Sub Test() proprietesFichier_getFile "C:\Documents and Settings\michel\leClasseur.xls" End Sub Sub proprietesFichier_getFile(Fichier As String) ' 'Ncessite d'activer la rfrence Microsoft Scripting Runtime ' Dim Cible As Scripting.FileSystemObject Dim Valeur As Scripting.File Dim Resultat As String Set Cible = CreateObject("Scripting.fileSystemObject") Set Valeur = Cible.GetFile(Fichier) Resultat = "Chemin et nom complet : " & Cible.GetAbsolutePathName(Valeur) & Chr(10) & Chr(10) & _ "Chemin : " & Cible.GetParentFolderName(Valeur) & Chr(10) & Chr(10) & _ "Nom fichier : " & Cible.GetFileName(Valeur) & Chr(10) & Chr(10) & _ "Nom fichier sans extension : " & Cible.GetBaseName(Valeur) & Chr(10) & Chr(10) & _ "Extension fichier : " & Cible.GetExtensionName(Valeur) & Chr(10) & Chr(10) & _ "Chemin : " & Valeur.ParentFolder & Chr(10) & Chr(10) & _ "Chemin court : " & Valeur.shortpath & Chr(10) & Chr(10) & _ "Nom court : " & Valeur.ShortName & Chr(10) & Chr(10) & _ "Date creation : " & Valeur.dateCreated & Chr(10) & Chr(10) & _ "Derniere modification : " & Valeur.dateLastModified & Chr(10) & Chr(10) & _ "Taille fichier : " & Valeur.Size & " octets" & Chr(10) & Chr(10) & _ "Type fichier : " & Valeur.Type MsgBox Resultat End Sub
Cette bibliothque permet aussi de passer un classeur en lecture seule, sans avoir besoin de l'ouvrir. Vb
Sub passerClasseur_lectureSeule() 'Ncessite d'activer la rfrence Microsoft Scriping Runtime Dim Fs As FileSystemObject Dim F As File Set Fs = CreateObject("Scripting.FileSystemObject") Set F = Fs.GetFile("C:\Documents and Settings\michel\leClasseur.xls") F.Attributes = F.Attributes + ReadOnly End Sub
- 14 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Cet exemple boucle sur les fichiers d'un rpertoire et affiche les proprits. Vb
Sub ListeProprietesFichiers_getDetailsOf() 'source: 'http://www.microsoft.com/resources/documentation/windows/2000/server/ 'scriptguide/en-us/sas_fil_lunl.mspx ' 'Ncessite d'activer la rfrence 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") 'Rpertoire cible Set objFolder = objShell.nameSpace("C:\Documents and Settings\michel") '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 = "" For i = 0 To 34 If objFolder.getDetailsOf(strFileName, i) <> "" Then _ Resultat = Resultat & objFolder.getDetailsOf(objFolder.Items, i) _ & ": " & objFolder.getDetailsOf(strFileName, i) & vbLf Next Reponse = MsgBox(Resultat & vbLf & vbLf & "Voulez vous continuer?", vbYesNo) If Reponse = vbNo Then Exit Sub End If Next End Sub
- 15 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Cette classe permet aussi de rcuprer des informations sur les fichiers. Vb
Sub Test() Dim sFich As String
- 16 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
Vb
sFich = "C:\Documents and Settings\michel\leClasseur.xls" Proprietes_CIM_Datafile sFich End Sub Sub Proprietes_CIM_Datafile(Fichier As String) Dim strComputer As String Dim objWMIService As Object, colFiles As Object, objFile As Object strComputer = "." Fichier = Replace(Fichier, "\", "\\") Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colFiles = objWMIService.ExecQuery _ ("Select * from CIM_Datafile Where name = '" & Fichier & "'") For Each objFile In colFiles Debug.Print "Archive: " & objFile.Archive Debug.Print "Description: " & objFile.Caption Debug.Print "Statut: " & objFile.Status 'Valeurs possibles: 'OK , Error , Degraded , Unknown , Pred Fail , Starting , Stopping , Service Debug.Print "Fichier systme: " & objFile.System Debug.Print "Compression: " & objFile.Compressed Debug.Print "Methode de Compression: " & objFile.CompressionMethod Debug.Print "Date de creation: " & objFile.CreationDate Debug.Print "Lecteur: " & objFile.Drive Debug.Print "Chemin d'accs: " & objFile.EightDotThreeFileName Debug.Print "Cryptage: " & objFile.Encrypted Debug.Print "Mthode de cryptage: " & objFile.EncryptionMethod Debug.Print "Extension: " & objFile.Extension Debug.Print "Nom du fichier: " & objFile.FileName Debug.Print "Taille du fichier: " & objFile.FileSize & " octets" Debug.Print "Type du fichier: " & objFile.FileType Debug.Print "Systme du fichier: " & objFile.FSName Debug.Print "Fichier cach: " & objFile.Hidden Debug.Print "Dernier accs: " & objFile.LastAccessed Debug.Print "Derniere modification: " & objFile.LastModified Debug.Print "Chemin complet du fichier: " & objFile.Name Debug.Print "Rpertoire du fichier: " & objFile.path Debug.Print "Lisible: " & objFile.Readable Debug.Print "Version: " & objFile.Version Debug.Print "Modifiable: " & objFile.Writeable Next End Sub
- 17 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/
Lire et modifier les proprits des classeurs et autres fichiers par SilkyRoad
V - Tlchargement
- 18 Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'autorisation de l'auteur.
http://silkyroad.developpez.com/VBA/ProprietesClasseurs/