Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

besoin de lister les propriétés de documents

6 réponses
Avatar
souricette
Suivant le conseil de Géo, je reposte ici ma question :
J'ai besoin de lister, dans un document ou par autre procédé débouchant sur
une impression, les documents contenus dans un dossier, avec leurs propriétés
(au sens Word du terme)
--------------------------------------------------
Bonjour à souricette qui nous a écrit :
> Oui, on parle bien d'obtenir :
> toutes les propriétés des documents, au sens Word du terme,
> mais concernant des classeurs Excel, des documents Words, des présentations
> Powerpoint et des documents PDF (de versions diverses)
> On parle bien de lister toutes ces propriétés pour des dossiers entiers, et
> donc pour aider à avoir une visibilité et une comparaison entre les fichiers
> contenus dans un même dossier
Pour word :
Voyez la batchmacro dans la faq word :
http://faqword.free.fr/download.php?lng=fr&pg=736

Pour lister toutes les propriétés d'un document :
Sub ListePropriétés()
Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveDocument.BuiltInDocumentProperties
T = T & p.name & Chr(9) & p & Chr(13)
Next
MsgBox T
End Sub

Pour Excel et Powerpoint ça doit être quelque chose d'approchant, mais
vous pourriez poser la question sur les forums spécifiques.
--
A+
-----------------------------

Merci de votre aide

6 réponses

Avatar
FFO
Salut souricette

Peut être que ceci devrait convenir :

Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveWorkbook.BuiltinDocumentProperties
T = T & p.Name & Chr(9) & p & Chr(13)
Next
MsgBox T

Dis moi


Suivant le conseil de Géo, je reposte ici ma question :
J'ai besoin de lister, dans un document ou par autre procédé débouchant sur
une impression, les documents contenus dans un dossier, avec leurs propriétés
(au sens Word du terme)
--------------------------------------------------
Oui, on parle bien d'obtenir :
toutes les propriétés des documents, au sens Word du terme,
mais concernant des classeurs Excel, des documents Words, des présentations
Powerpoint et des documents PDF (de versions diverses)
On parle bien de lister toutes ces propriétés pour des dossiers entiers, et
donc pour aider à avoir une visibilité et une comparaison entre les fichiers
contenus dans un même dossier
Pour word :

Voyez la batchmacro dans la faq word :
http://faqword.free.fr/download.php?lng=fr&pgs6

Pour lister toutes les propriétés d'un document :
Sub ListePropriétés()
Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveDocument.BuiltInDocumentProperties
T = T & p.name & Chr(9) & p & Chr(13)
Next
MsgBox T
End Sub

Pour Excel et Powerpoint ça doit être quelque chose d'approchant, mais
vous pourriez poser la question sur les forums spécifiques.
--
A+
-----------------------------

Merci de votre aide



Avatar
souricette
Après avoir testé, voici mes préoccupations restantes :
Dans Word, la BatchMacro est opérationnelle si on reste à l'intérieur d'un
document ouvert, et qu'on applique soigneusement la procédure indiquée
ci-dessous :
PROCEDURE : BatchMacro Par Anacoluthe

Une BatchMacro est une macro qui permet d’exécuter une macro sur plusieurs
documents (batch = traitement par lots).

Exemples pratiques :
• Vous avez enregistré une macro qui dans un document remplace le mot
DOSSIER par le mot CLASSEUR. Vous souhaitez appliquer rapidement cette macro
à tous vos anciens documents d’un répertoire donné,
• Vous avez modifié l’en-tête d’une lettre. Vous souhaitez modifier toutes
vos lettres,
• Vous souhaitez changer le logo présent dans tous vos anciens documents,
• Vous voulez attacher un autre modèle à tous les documents d’un répertoire,
changer les styles,mettre à jour des liens hypertexte etc.

L’intérêt de la présente BatchMacro est de vous éviter d’avoir à écrire
vous-même une macro qui boucle sur une série de fichiers. Il vous suffit de
disposer d’une macro simple pour un seul fichier, que vous aurez par exemple
enregistrée avec l’enregistreur de macros ( Outils / Macro / Nouvelle macro
ou le bouton ‘ENR’ sur la barre d’état en bas). Une fois cette macro
enregistrée, exécutez la BatchMacro : choisissez les fichiers à traiter,
choisissez votre macro (par exemple Macro1), et voilà.

Ce que vous devez respecter :
Enregistrez votre macro dans « Tous les documents (Normal.dot) »
Votre macro doit s’exécuter sur un document ouvert. N’enregistrez pas
l’ouverture du document ni sa fermeture et son enregistrement : la BatchMacro
s’en chargera elle-même.
Vérifiez que votre macro peut s’appliquer à tous les documents. Une erreur
arrêterait le bouclage. Au besoin testez votre macro sur quelques documents
pour voir son efficacité.
Les documents que vous souhaitez traiter ne doivent pas être protégés.

La BatchMacro est en deux versions selon votre version Word
• Une version Word 2000 (et Word 97) : vous choisirez un répertoire de
travail dans lequel la bachmacro va traiter tous les documents (fichiers .doc)
• Une version Word 2002 (et 2003) : grâce au ‘pique-fichiers’ vous choisirez
les fichiers à traiter. Comme dans l’explorateur utilisez la touche Ctrl pour
sélectionner des fichiers, la touche Maj pour sélectionner une série de
fichiers, Ctrl+A pour sélectionner tous les fichiers du répertoire.

Installation
• Extraire le fichier BacthMacro2000.bas ou BacthMacro2000.bas qui
correspond à votre version Word
• Dans Word, ouvrez VBE l’éditeur VBA : Alt+F11
• Menu Fichier / Importer un fichier : importez le fichier BatchMacro200x.bas

Utilisation
• Editez ou enregistrez une macro sur un document
• Alt+F8 : sélectionner la BatchMacro – Exécuter
• La BatchMacro lancée vous demandera d’abord de choisir les fichiers puis
la macro à exécuter sur les fichiers.


Anacoluthe
--------
jusque là, tout va bien...
--------

BATCHMACRO, le code :
Attribute VB_Name = "BatchMacro2002"
Option Explicit

Public Sub BatchMacro()
' Exécute une macro par lot sur une série de fichiers
' Version légère pour WD2002+ seulement : utilise le FilePicker
' Anacoluthe pour le MPFW et la FAQ à

Dim NomMacro As String
Dim vFichier As Variant
Dim RetourDL As Long
Dim NbFichOK As Integer

' 1- Sélection des fichiers
' Le FilePicker permet de sélectionner le répertoire puis dedans
' des fichiers avec Maj ou Ctrl ou tous les fichiers avec Ctrl+A
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "BATCH: Sélectionner les fichiers à traiter"
fd.Filters.Add _
"Documents", "*.doc; *.dot; *.html; *.htm; *.rtf", 1
If fd.Show <> -1 Then Exit Sub
If MsgBox(fd.SelectedItems.Count & " documents à traiter ", vbYesNo, _
"continuer ?") = vbNo Then Exit Sub

' 2- Sélection de la macro
MsgBox "Choisissez maintenant la macro" & vbCr & _
"et appuyez sur le bouton Exécuter"
With Application.Dialogs(wdDialogToolsMacro)
RetourDL = .Display
NomMacro = .Name
End With
If RetourDL <> 1 Then Exit Sub
If InStr(NomMacro, "Batch") <> 0 _
Then MsgBox "Pas Batchmacro de Batchmacro !": Exit Sub

' 3- Exécution de la macro dans tous les fichiers choisis
' la macro doit agir uniquement sur le document actif sans le fermer
For Each vFichier In fd.SelectedItems
On Error GoTo Suivant
Application.Documents.Open FileName:=vFichier, _
AddToRecentFiles:úlse, ConfirmConversions:=True, _
Visible:=True
On Error GoTo Fermer
Application.Run (NomMacro)
NbFichOK = NbFichOK + 1
Fermer:
On Error GoTo Suivant
ActiveDocument.Close SaveChanges:=wdSaveChanges
Suivant:
On Error GoTo 0
Next vFichier

' 4 fin de la BatchMacro
MsgBox ("La macro " & NomMacro & " a été exécutée sur " _
& NbFichOK & " Fichiers")
Set fd = Nothing
End Sub

---------------------
ensuite, il y a la proposition de code de Géo, qui fonctionne plutôt bien :
Pour lister toutes les propriétés d'un document :
Sub ListePropriétés()
Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveDocument.BuiltInDocumentProperties
T = T & p.name & Chr(9) & p & Chr(13)
Next
MsgBox T
End Sub
----------------------------


mais le coup de la visu par MsgBox ne me convient pas : je voudrais ce
résultat dans un document imprimable et réutilisable.
Mon souci original étant de pouvoir présenter un comparatif différentiel de
mes documents contenus dans un même dossier, je veux pouvoir faire apparaître
les propriétés de tous les fichiers sélectionnés (autant dire tous ceux du
dossier) dans un même document. Et obtenir toutes leurs propriétés, y compris
et surtout les mots clés ajoutés àl'enregistrement, sans distinction entre
les fichiers .doc, .xls, .ppt ou même .pps !
Merci à tous de m'aider....

-----------------
concernant le code fourni par FFO,
je ne parviens pas à faire exécuter la batchMacro,
ni le code concerné....



Salut souricette

Peut être que ceci devrait convenir :

Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveWorkbook.BuiltinDocumentProperties
T = T & p.Name & Chr(9) & p & Chr(13)
Next
MsgBox T

Dis moi


Suivant le conseil de Géo, je reposte ici ma question :
J'ai besoin de lister, dans un document ou par autre procédé débouchant sur
une impression, les documents contenus dans un dossier, avec leurs propriétés
(au sens Word du terme)
--------------------------------------------------
Oui, on parle bien d'obtenir :
toutes les propriétés des documents, au sens Word du terme,
mais concernant des classeurs Excel, des documents Words, des présentations
Powerpoint et des documents PDF (de versions diverses)
On parle bien de lister toutes ces propriétés pour des dossiers entiers, et
donc pour aider à avoir une visibilité et une comparaison entre les fichiers
contenus dans un même dossier
Pour word :

Voyez la batchmacro dans la faq word :
http://faqword.free.fr/download.php?lng=fr&pgs6

Pour lister toutes les propriétés d'un document :
Sub ListePropriétés()
Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveDocument.BuiltInDocumentProperties
T = T & p.name & Chr(9) & p & Chr(13)
Next
MsgBox T
End Sub

Pour Excel et Powerpoint ça doit être quelque chose d'approchant, mais
vous pourriez poser la question sur les forums spécifiques.
--
A+
-----------------------------

Merci de votre aide





Avatar
Mgr Banni
bonjour souricette
pour remplacer la "visu par MsgBox", peut-être pourriez-vous vous inspirer
de ce codez-ci :

Sub BuiltinDocumentProperties()
Dim rw
Dim p
rw = 1
Workbooks.Add
On Error Resume Next
For Each p In ActiveWorkbook.BuiltinDocumentProperties
Cells(rw, 1).Value = p.Name
Cells(rw, 2).Value = p.Value
rw = rw + 1
Next
End Sub

puis venir aux vêpres imminentes si quelque mauvais démon s'emparait de vous
au point de ne pas vous permettre de comprendre ces quelques lignes

Mgr T.B.

"souricette" a écrit dans le message
de news:
Après avoir testé, voici mes préoccupations restantes :
Dans Word, la BatchMacro est opérationnelle si on reste à l'intérieur d'un
document ouvert, et qu'on applique soigneusement la procédure indiquée
ci-dessous :
PROCEDURE : BatchMacro Par Anacoluthe

Une BatchMacro est une macro qui permet d’exécuter une macro sur plusieurs
documents (batch = traitement par lots).

Exemples pratiques :
• Vous avez enregistré une macro qui dans un document remplace le mot
DOSSIER par le mot CLASSEUR. Vous souhaitez appliquer rapidement cette
macro
à tous vos anciens documents d’un répertoire donné,
• Vous avez modifié l’en-tête d’une lettre. Vous souhaitez modifier toutes
vos lettres,
• Vous souhaitez changer le logo présent dans tous vos anciens documents,
• Vous voulez attacher un autre modèle à tous les documents d’un
répertoire,
changer les styles,mettre à jour des liens hypertexte etc.

L’intérêt de la présente BatchMacro est de vous éviter d’avoir à écrire
vous-même une macro qui boucle sur une série de fichiers. Il vous suffit
de
disposer d’une macro simple pour un seul fichier, que vous aurez par
exemple
enregistrée avec l’enregistreur de macros ( Outils / Macro / Nouvelle
macro
ou le bouton ‘ENR’ sur la barre d’état en bas). Une fois cette macro
enregistrée, exécutez la BatchMacro : choisissez les fichiers à traiter,
choisissez votre macro (par exemple Macro1), et voilà.

Ce que vous devez respecter :
Enregistrez votre macro dans « Tous les documents (Normal.dot) »
Votre macro doit s’exécuter sur un document ouvert. N’enregistrez pas
l’ouverture du document ni sa fermeture et son enregistrement : la
BatchMacro
s’en chargera elle-même.
Vérifiez que votre macro peut s’appliquer à tous les documents. Une erreur
arrêterait le bouclage. Au besoin testez votre macro sur quelques
documents
pour voir son efficacité.
Les documents que vous souhaitez traiter ne doivent pas être protégés.

La BatchMacro est en deux versions selon votre version Word
• Une version Word 2000 (et Word 97) : vous choisirez un répertoire de
travail dans lequel la bachmacro va traiter tous les documents (fichiers
.doc)
• Une version Word 2002 (et 2003) : grâce au ‘pique-fichiers’ vous
choisirez
les fichiers à traiter. Comme dans l’explorateur utilisez la touche Ctrl
pour
sélectionner des fichiers, la touche Maj pour sélectionner une série de
fichiers, Ctrl+A pour sélectionner tous les fichiers du répertoire.

Installation
• Extraire le fichier BacthMacro2000.bas ou BacthMacro2000.bas qui
correspond à votre version Word
• Dans Word, ouvrez VBE l’éditeur VBA : Alt+F11
• Menu Fichier / Importer un fichier : importez le fichier
BatchMacro200x.bas

Utilisation
• Editez ou enregistrez une macro sur un document
• Alt+F8 : sélectionner la BatchMacro – Exécuter
• La BatchMacro lancée vous demandera d’abord de choisir les fichiers puis
la macro à exécuter sur les fichiers.


Anacoluthe
--------
jusque là, tout va bien...
--------

BATCHMACRO, le code :
Attribute VB_Name = "BatchMacro2002"
Option Explicit

Public Sub BatchMacro()
' Exécute une macro par lot sur une série de fichiers
' Version légère pour WD2002+ seulement : utilise le FilePicker
' Anacoluthe pour le MPFW et la FAQ à

Dim NomMacro As String
Dim vFichier As Variant
Dim RetourDL As Long
Dim NbFichOK As Integer

' 1- Sélection des fichiers
' Le FilePicker permet de sélectionner le répertoire puis dedans
' des fichiers avec Maj ou Ctrl ou tous les fichiers avec Ctrl+A
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "BATCH: Sélectionner les fichiers à traiter"
fd.Filters.Add _
"Documents", "*.doc; *.dot; *.html; *.htm; *.rtf", 1
If fd.Show <> -1 Then Exit Sub
If MsgBox(fd.SelectedItems.Count & " documents à traiter ", vbYesNo, _
"continuer ?") = vbNo Then Exit Sub

' 2- Sélection de la macro
MsgBox "Choisissez maintenant la macro" & vbCr & _
"et appuyez sur le bouton Exécuter"
With Application.Dialogs(wdDialogToolsMacro)
RetourDL = .Display
NomMacro = .Name
End With
If RetourDL <> 1 Then Exit Sub
If InStr(NomMacro, "Batch") <> 0 _
Then MsgBox "Pas Batchmacro de Batchmacro !": Exit Sub

' 3- Exécution de la macro dans tous les fichiers choisis
' la macro doit agir uniquement sur le document actif sans le fermer
For Each vFichier In fd.SelectedItems
On Error GoTo Suivant
Application.Documents.Open FileName:=vFichier, _
AddToRecentFiles:úlse, ConfirmConversions:=True, _
Visible:=True
On Error GoTo Fermer
Application.Run (NomMacro)
NbFichOK = NbFichOK + 1
Fermer:
On Error GoTo Suivant
ActiveDocument.Close SaveChanges:=wdSaveChanges
Suivant:
On Error GoTo 0
Next vFichier

' 4 fin de la BatchMacro
MsgBox ("La macro " & NomMacro & " a été exécutée sur " _
& NbFichOK & " Fichiers")
Set fd = Nothing
End Sub

---------------------
ensuite, il y a la proposition de code de Géo, qui fonctionne plutôt bien
:
Pour lister toutes les propriétés d'un document :
Sub ListePropriétés()
Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveDocument.BuiltInDocumentProperties
T = T & p.name & Chr(9) & p & Chr(13)
Next
MsgBox T
End Sub
----------------------------


mais le coup de la visu par MsgBox ne me convient pas : je voudrais ce
résultat dans un document imprimable et réutilisable.
Mon souci original étant de pouvoir présenter un comparatif différentiel
de
mes documents contenus dans un même dossier, je veux pouvoir faire
apparaître
les propriétés de tous les fichiers sélectionnés (autant dire tous ceux du
dossier) dans un même document. Et obtenir toutes leurs propriétés, y
compris
et surtout les mots clés ajoutés àl'enregistrement, sans distinction entre
les fichiers .doc, .xls, .ppt ou même .pps !
Merci à tous de m'aider....

-----------------
concernant le code fourni par FFO,
je ne parviens pas à faire exécuter la batchMacro,
ni le code concerné....



Salut souricette

Peut être que ceci devrait convenir :

Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveWorkbook.BuiltinDocumentProperties
T = T & p.Name & Chr(9) & p & Chr(13)
Next
MsgBox T

Dis moi


Suivant le conseil de Géo, je reposte ici ma question :
J'ai besoin de lister, dans un document ou par autre procédé débouchant
sur
une impression, les documents contenus dans un dossier, avec leurs
propriétés
(au sens Word du terme)
--------------------------------------------------
Oui, on parle bien d'obtenir :
toutes les propriétés des documents, au sens Word du terme,
mais concernant des classeurs Excel, des documents Words, des
présentations
Powerpoint et des documents PDF (de versions diverses)
On parle bien de lister toutes ces propriétés pour des dossiers
entiers, et
donc pour aider à avoir une visibilité et une comparaison entre les
fichiers
contenus dans un même dossier
Pour word :

Voyez la batchmacro dans la faq word :
http://faqword.free.fr/download.php?lng=fr&pgs6

Pour lister toutes les propriétés d'un document :
Sub ListePropriétés()
Dim T As String
Dim p
On Error Resume Next
For Each p In ActiveDocument.BuiltInDocumentProperties
T = T & p.name & Chr(9) & p & Chr(13)
Next
MsgBox T
End Sub

Pour Excel et Powerpoint ça doit être quelque chose d'approchant, mais
vous pourriez poser la question sur les forums spécifiques.
--
A+
-----------------------------

Merci de votre aide







Avatar
souricette

bonjour souricette
pour remplacer la "visu par MsgBox", peut-être pourriez-vous vous inspirer
de ce codez-ci :

Sub BuiltinDocumentProperties()
Dim rw
Dim p
rw = 1
Workbooks.Add
On Error Resume Next
For Each p In ActiveWorkbook.BuiltinDocumentProperties
Cells(rw, 1).Value = p.Name
Cells(rw, 2).Value = p.Value
rw = rw + 1
Next
End Sub

puis venir aux vêpres imminentes si quelque mauvais démon s'emparait de vous
au point de ne pas vous permettre de comprendre ces quelques lignes

Mgr T.B.


l'inspiration me manque pour improviser les modifications utiles :

1/ Comment modifier la batch macro d'origine pour qu'elle me donne accès à
tous les fichiers du répertoire (Word + Excel + Powerpoint + PDF )
le souci doit se trouver là :

' 1- Sélection des fichiers
' Le FilePicker permet de sélectionner le répertoire puis dedans
' des fichiers avec Maj ou Ctrl ou tous les fichiers avec Ctrl+A
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "BATCH: Sélectionner les fichiers à traiter"
fd.Filters.Add _
"Documents", "*.doc; *.dot; *.html; *.htm; *.rtf", 1
If fd.Show <> -1 Then Exit Sub
If MsgBox(fd.SelectedItems.Count & " documents à traiter ", vbYesNo, _
"continuer ?") = vbNo Then Exit Sub

mais rajouter les extensions manquantes ne suffit pas : seuls les documents
"texte" apparaissent (dans un répertoire qui en comprend de toutes sortes)

2/ Comment écrire ensuite (je balbutie en VBA) la macro qui va pouvoir
extraire les propriétés des documents traités et tout réunir dans un seul
fichier (un tableau XL me convient très bien si comme j'ai cru le comprendre
dans votre exemple le nom du document se trouve en 1ere colonne et les
propriétées sur les colonnes suivantes) ?

Merci

Avatar
Mgr Banni
ouh la la, souricette
je passe la main car moi, en VBA, je ne balbutie pas : je borborygme....
qui va venir au secours de notre petit rongeur?
Mgr T.B.

"souricette" a écrit dans le message
de news:

bonjour souricette
pour remplacer la "visu par MsgBox", peut-être pourriez-vous vous
inspirer
de ce codez-ci :

Sub BuiltinDocumentProperties()
Dim rw
Dim p
rw = 1
Workbooks.Add
On Error Resume Next
For Each p In ActiveWorkbook.BuiltinDocumentProperties
Cells(rw, 1).Value = p.Name
Cells(rw, 2).Value = p.Value
rw = rw + 1
Next
End Sub

puis venir aux vêpres imminentes si quelque mauvais démon s'emparait de
vous
au point de ne pas vous permettre de comprendre ces quelques lignes

Mgr T.B.


l'inspiration me manque pour improviser les modifications utiles :

1/ Comment modifier la batch macro d'origine pour qu'elle me donne accès à
tous les fichiers du répertoire (Word + Excel + Powerpoint + PDF )
le souci doit se trouver là :

' 1- Sélection des fichiers
' Le FilePicker permet de sélectionner le répertoire puis dedans
' des fichiers avec Maj ou Ctrl ou tous les fichiers avec Ctrl+A
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "BATCH: Sélectionner les fichiers à traiter"
fd.Filters.Add _
"Documents", "*.doc; *.dot; *.html; *.htm; *.rtf", 1
If fd.Show <> -1 Then Exit Sub
If MsgBox(fd.SelectedItems.Count & " documents à traiter ", vbYesNo, _
"continuer ?") = vbNo Then Exit Sub

mais rajouter les extensions manquantes ne suffit pas : seuls les
documents
"texte" apparaissent (dans un répertoire qui en comprend de toutes sortes)

2/ Comment écrire ensuite (je balbutie en VBA) la macro qui va pouvoir
extraire les propriétés des documents traités et tout réunir dans un seul
fichier (un tableau XL me convient très bien si comme j'ai cru le
comprendre
dans votre exemple le nom du document se trouve en 1ere colonne et les
propriétées sur les colonnes suivantes) ?

Merci



Avatar
souricette

ouh la la, souricette
je passe la main car moi, en VBA, je ne balbutie pas : je borborygme....
qui va venir au secours de notre petit rongeur?
Mgr T.B.

S'il est autorisé de croire aux miracles, peut-être la solution est-elle

envisageable SANS passer par le VBA (qui me pose un souci supplémentaire du
fait que les modules que j'ai trouvé sont surtout intra applicatif, et que le
moyen d'utiliser les passerelles supposées exister entre les applications du
pack office restent trop discrètes pour que je puisse les avoir décelées...)
Merci