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
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
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
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
----------------------------
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 moiSuivant 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
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
----------------------------
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
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
----------------------------
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 moiSuivant 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
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 moiSuivant 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
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 à m@rina
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
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 moiSuivant 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
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.
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.
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.
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
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
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
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
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
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