C'est probablement moi qui suis à la masse, mais je ne trouve pas DSO File,
il y a une astuce qui m'a échappée ?
Le lien de téléchargement est dans la première référence citée par
Jacques , le voici :
http://www.microsoft.com/downloads/details.aspx?FamilyIDa6fac6-520b-4a0a-878a-53ec8300c4c2&DisplayLang=en
--
A+
C'est probablement moi qui suis à la masse, mais je ne trouve pas DSO File,
il y a une astuce qui m'a échappée ?
Le lien de téléchargement est dans la première référence citée par
Jacques , le voici :
http://www.microsoft.com/downloads/details.aspx?FamilyIDa6fac6-520b-4a0a-878a-53ec8300c4c2&DisplayLang=en
--
A+
C'est probablement moi qui suis à la masse, mais je ne trouve pas DSO File,
il y a une astuce qui m'a échappée ?
Le lien de téléchargement est dans la première référence citée par
Jacques , le voici :
http://www.microsoft.com/downloads/details.aspx?FamilyIDa6fac6-520b-4a0a-878a-53ec8300c4c2&DisplayLang=en
--
A+
C'est probablement moi qui suis à la masse, mais je ne trouve pas DSO File,
il y a une astuce qui m'a échappée ?
Le lien de téléchargement est dans la première référence citée par
Jacques , le voici :
http://www.microsoft.com/downloads/details.aspx?FamilyIDa6fac6-520b-4a0a-878a-53ec8300c4c2&DisplayLang=en
--
A+
C'est probablement moi qui suis à la masse, mais je ne trouve pas DSO File,
il y a une astuce qui m'a échappée ?
Le lien de téléchargement est dans la première référence citée par
Jacques , le voici :
http://www.microsoft.com/downloads/details.aspx?FamilyIDa6fac6-520b-4a0a-878a-53ec8300c4c2&DisplayLang=en
--
A+
C'est probablement moi qui suis à la masse, mais je ne trouve pas DSO File,
il y a une astuce qui m'a échappée ?
Le lien de téléchargement est dans la première référence citée par
Jacques , le voici :
http://www.microsoft.com/downloads/details.aspx?FamilyIDa6fac6-520b-4a0a-878a-53ec8300c4c2&DisplayLang=en
--
A+
sinon, ma demande vous semble-t-elle plus claire à présent ?
"une comparaison entre différentes versions de fichiers sensiblement
identiques où l'auteur est plus pertinent que la date ou la taille,
Exploration de dossier de "vrac pour base documentaire" afin de regrouper
des fichiers en fonction des mots clé associés (quand il y en a) , etc....
Ma démarche est-elle la bonne ou y a-t-il une "meilleure solution"
sinon, ma demande vous semble-t-elle plus claire à présent ?
"une comparaison entre différentes versions de fichiers sensiblement
identiques où l'auteur est plus pertinent que la date ou la taille,
Exploration de dossier de "vrac pour base documentaire" afin de regrouper
des fichiers en fonction des mots clé associés (quand il y en a) , etc....
Ma démarche est-elle la bonne ou y a-t-il une "meilleure solution"
sinon, ma demande vous semble-t-elle plus claire à présent ?
"une comparaison entre différentes versions de fichiers sensiblement
identiques où l'auteur est plus pertinent que la date ou la taille,
Exploration de dossier de "vrac pour base documentaire" afin de regrouper
des fichiers en fonction des mots clé associés (quand il y en a) , etc....
Ma démarche est-elle la bonne ou y a-t-il une "meilleure solution"
sinon, ma demande vous semble-t-elle plus claire à présent ?
"une comparaison entre différentes versions de fichiers sensiblement
identiques où l'auteur est plus pertinent que la date ou la taille,
Exploration de dossier de "vrac pour base documentaire" afin de regrouper
des fichiers en fonction des mots clé associés (quand il y en a) , etc....
Ma démarche est-elle la bonne ou y a-t-il une "meilleure solution"
Effectivement je ne l'avais pas compris comme ça, je pensais que vous
vouliez identifier des doublons éventuels.
Dans votre cas c'est la bonne méthode.
Merci, je commençais à douter de moi
Ce qui serait efficace, ce serait de structurer le fichier obtenu de
manière à pouvoir ensuite le trier.
C'est à dire qu'au lieu d'avoir une ligne par propriété, mettre sur une
seule ligne toutes les propriétés d'un même document mais dans un ordre
rigoureux.
On récupère ensuite le fichier sur Excel et on peut le travailler.
Oui, ce serait formidable, on pourrait même peut-être directement faire un
Ça demande une petite adaptation du programme de Jacques.
--
A+
sinon, ma demande vous semble-t-elle plus claire à présent ?
"une comparaison entre différentes versions de fichiers sensiblement
identiques où l'auteur est plus pertinent que la date ou la taille,
Exploration de dossier de "vrac pour base documentaire" afin de regrouper
des fichiers en fonction des mots clé associés (quand il y en a) , etc....
Ma démarche est-elle la bonne ou y a-t-il une "meilleure solution"
Effectivement je ne l'avais pas compris comme ça, je pensais que vous
vouliez identifier des doublons éventuels.
Dans votre cas c'est la bonne méthode.
Merci, je commençais à douter de moi
Ce qui serait efficace, ce serait de structurer le fichier obtenu de
manière à pouvoir ensuite le trier.
C'est à dire qu'au lieu d'avoir une ligne par propriété, mettre sur une
seule ligne toutes les propriétés d'un même document mais dans un ordre
rigoureux.
On récupère ensuite le fichier sur Excel et on peut le travailler.
Oui, ce serait formidable, on pourrait même peut-être directement faire un
Ça demande une petite adaptation du programme de Jacques.
--
A+
sinon, ma demande vous semble-t-elle plus claire à présent ?
"une comparaison entre différentes versions de fichiers sensiblement
identiques où l'auteur est plus pertinent que la date ou la taille,
Exploration de dossier de "vrac pour base documentaire" afin de regrouper
des fichiers en fonction des mots clé associés (quand il y en a) , etc....
Ma démarche est-elle la bonne ou y a-t-il une "meilleure solution"
Effectivement je ne l'avais pas compris comme ça, je pensais que vous
vouliez identifier des doublons éventuels.
Dans votre cas c'est la bonne méthode.
Merci, je commençais à douter de moi
Ce qui serait efficace, ce serait de structurer le fichier obtenu de
manière à pouvoir ensuite le trier.
C'est à dire qu'au lieu d'avoir une ligne par propriété, mettre sur une
seule ligne toutes les propriétés d'un même document mais dans un ordre
rigoureux.
On récupère ensuite le fichier sur Excel et on peut le travailler.
Oui, ce serait formidable, on pourrait même peut-être directement faire un
Ça demande une petite adaptation du programme de Jacques.
--
A+
Re
Voici le programme de Jacques adapté pour avoir toutes les propriétés
d'un fichier sur une même ligne.
Le choix du dossier est fait en cours d'exécution de la macro.
Il y a un fichier à part pour la trace des erreurs à l'ouverture, je
l'ai mis à part, car je fais des tests sur des dossiers qui ont
d'autres fichiers.
Dans le fichier rapport.txt il y a une première ligne avec les titres
des propriétés,
ensuite une ligne par fichier.
On ouvre Rapport.txt avec le bloc note, copie du contenu, collage dans
une feuille Excel.
La deuxième colonne est le nom de l'application, donc pas besoin a
priori d'isoler l'extension.
Il y a quelques Replace car je suis tombé sur des titres qui mettaient
la pagaïe.
Les deux fichiers résultats sont écrits dans le dossier concerné, il
est donc possible de traiter plusieurs dossiers dans la foulée.
J'ai un résultat pour les fichiers jpg et emf, je n'ai pas compris
pourquoi.
Attention aux retours à la ligne générés par le courrieleur:
Private Sub ListePropOfficeDSO()
Dim fso As Object ' FileSystemObject
Dim fld As Object ' Répertoire
Dim f As Object ' fichier
Dim dso As Object ' DSOFile
Dim fNumR As Integer
Dim fNumE As Integer
Dim Dossier As FileDialog
Dim T As String
Dim i As Integer
Dim e As Object
fNumR = FreeFile()
fNumE = fNumR + 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
Dossier.Title = "Sélectionner le dossier à traiter"
If Dossier.Show <> -1 Then Exit Sub
Set fld = fso.GetFolder(Dossier.InitialFileName)
Set dso = CreateObject("DSOfile.OleDocumentProperties")
Open Dossier.InitialFileName & "Rapport.txt" For Output As #fNumR
Open Dossier.InitialFileName & "Erreurs.txt" For Output As #fNumE
T = "Nom du fichier"
T = T & vbTab & "Application name: "
T = T & vbTab & "Author: "
T = T & vbTab & "Byte count: "
T = T & vbTab & "Category: "
T = T & vbTab & "Character count: "
T = T & vbTab & "Character count with spaces: "
T = T & vbTab & "Comments: "
T = T & vbTab & "Company: "
T = T & vbTab & "Date created: "
T = T & vbTab & "Date last printed: "
T = T & vbTab & "Date last saved: "
T = T & vbTab & "Hidden slide count: "
T = T & vbTab & "Keywords: "
T = T & vbTab & "Last saved by: "
T = T & vbTab & "Line count: "
T = T & vbTab & "Manager: "
T = T & vbTab & "Multimedia clip count: "
T = T & vbTab & "Note count: "
T = T & vbTab & "Page count: "
T = T & vbTab & "Paragraph count: "
T = T & vbTab & "Presentation format: "
T = T & vbTab & "Revision number: "
T = T & vbTab & "Shared document: "
T = T & vbTab & "Slide count: "
T = T & vbTab & "Subject: "
T = T & vbTab & "Template: "
T = T & vbTab & "Title: "
T = T & vbTab & "Total edit time: "
T = T & vbTab & "Version: "
T = T & vbTab & "Word count: "
Print #fNumR, T
On Error Resume Next
Err.Clear
For Each f In fld.Files
Err.Clear
dso.Open f
If Err.Number <> 0 Then
Print #fNumE, "Erreur ouverture : " & f.name & " " & _
Err.Number & "=" & Err.Description
Else
If dso.SummaryProperties.ApplicationName <> "" Then
T = f.name
T = T & vbTab & dso.SummaryProperties.ApplicationName
T = T & vbTab & Replace(dso.SummaryProperties.Author, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.ByteCount
T = T & vbTab & dso.SummaryProperties.Category
T = T & vbTab & dso.SummaryProperties.CharacterCount
T = T & vbTab & dso.SummaryProperties.CharacterCountWithSpaces
T = T & vbTab & Replace(dso.SummaryProperties.Comments, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.Company, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.DateCreated
T = T & vbTab & dso.SummaryProperties.DateLastPrinted
T = T & vbTab & dso.SummaryProperties.DateLastSaved
T = T & vbTab & dso.SummaryProperties.HiddenSlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Keywords, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.LastSavedBy,
vbTab, " ")
T = T & vbTab & dso.SummaryProperties.LineCount
T = T & vbTab & Replace(dso.SummaryProperties.Manager, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.MultimediaClipCount
T = T & vbTab & dso.SummaryProperties.NoteCount
T = T & vbTab & dso.SummaryProperties.PageCount
T = T & vbTab & dso.SummaryProperties.ParagraphCount
T = T & vbTab & dso.SummaryProperties.PresentationFormat
T = T & vbTab & dso.SummaryProperties.RevisionNumber
T = T & vbTab & dso.SummaryProperties.SharedDocument
T = T & vbTab & dso.SummaryProperties.SlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Subject, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.Template
T = T & vbTab & Replace(dso.SummaryProperties.Title, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.TotalEditTime
T = T & vbTab & dso.SummaryProperties.Version
T = T & vbTab & dso.SummaryProperties.WordCount
T = Replace(T, vbLf, " ")
T = Replace(T, vbCr, " ")
Print #fNumR, T
End If
dso.Close
End If
DoEvents
Next
Close
Set dso = Nothing
Set fso = Nothing
MsgBox "Terminé"
End Sub
--
A+
Re
Voici le programme de Jacques adapté pour avoir toutes les propriétés
d'un fichier sur une même ligne.
Le choix du dossier est fait en cours d'exécution de la macro.
Il y a un fichier à part pour la trace des erreurs à l'ouverture, je
l'ai mis à part, car je fais des tests sur des dossiers qui ont
d'autres fichiers.
Dans le fichier rapport.txt il y a une première ligne avec les titres
des propriétés,
ensuite une ligne par fichier.
On ouvre Rapport.txt avec le bloc note, copie du contenu, collage dans
une feuille Excel.
La deuxième colonne est le nom de l'application, donc pas besoin a
priori d'isoler l'extension.
Il y a quelques Replace car je suis tombé sur des titres qui mettaient
la pagaïe.
Les deux fichiers résultats sont écrits dans le dossier concerné, il
est donc possible de traiter plusieurs dossiers dans la foulée.
J'ai un résultat pour les fichiers jpg et emf, je n'ai pas compris
pourquoi.
Attention aux retours à la ligne générés par le courrieleur:
Private Sub ListePropOfficeDSO()
Dim fso As Object ' FileSystemObject
Dim fld As Object ' Répertoire
Dim f As Object ' fichier
Dim dso As Object ' DSOFile
Dim fNumR As Integer
Dim fNumE As Integer
Dim Dossier As FileDialog
Dim T As String
Dim i As Integer
Dim e As Object
fNumR = FreeFile()
fNumE = fNumR + 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
Dossier.Title = "Sélectionner le dossier à traiter"
If Dossier.Show <> -1 Then Exit Sub
Set fld = fso.GetFolder(Dossier.InitialFileName)
Set dso = CreateObject("DSOfile.OleDocumentProperties")
Open Dossier.InitialFileName & "Rapport.txt" For Output As #fNumR
Open Dossier.InitialFileName & "Erreurs.txt" For Output As #fNumE
T = "Nom du fichier"
T = T & vbTab & "Application name: "
T = T & vbTab & "Author: "
T = T & vbTab & "Byte count: "
T = T & vbTab & "Category: "
T = T & vbTab & "Character count: "
T = T & vbTab & "Character count with spaces: "
T = T & vbTab & "Comments: "
T = T & vbTab & "Company: "
T = T & vbTab & "Date created: "
T = T & vbTab & "Date last printed: "
T = T & vbTab & "Date last saved: "
T = T & vbTab & "Hidden slide count: "
T = T & vbTab & "Keywords: "
T = T & vbTab & "Last saved by: "
T = T & vbTab & "Line count: "
T = T & vbTab & "Manager: "
T = T & vbTab & "Multimedia clip count: "
T = T & vbTab & "Note count: "
T = T & vbTab & "Page count: "
T = T & vbTab & "Paragraph count: "
T = T & vbTab & "Presentation format: "
T = T & vbTab & "Revision number: "
T = T & vbTab & "Shared document: "
T = T & vbTab & "Slide count: "
T = T & vbTab & "Subject: "
T = T & vbTab & "Template: "
T = T & vbTab & "Title: "
T = T & vbTab & "Total edit time: "
T = T & vbTab & "Version: "
T = T & vbTab & "Word count: "
Print #fNumR, T
On Error Resume Next
Err.Clear
For Each f In fld.Files
Err.Clear
dso.Open f
If Err.Number <> 0 Then
Print #fNumE, "Erreur ouverture : " & f.name & " " & _
Err.Number & "=" & Err.Description
Else
If dso.SummaryProperties.ApplicationName <> "" Then
T = f.name
T = T & vbTab & dso.SummaryProperties.ApplicationName
T = T & vbTab & Replace(dso.SummaryProperties.Author, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.ByteCount
T = T & vbTab & dso.SummaryProperties.Category
T = T & vbTab & dso.SummaryProperties.CharacterCount
T = T & vbTab & dso.SummaryProperties.CharacterCountWithSpaces
T = T & vbTab & Replace(dso.SummaryProperties.Comments, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.Company, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.DateCreated
T = T & vbTab & dso.SummaryProperties.DateLastPrinted
T = T & vbTab & dso.SummaryProperties.DateLastSaved
T = T & vbTab & dso.SummaryProperties.HiddenSlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Keywords, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.LastSavedBy,
vbTab, " ")
T = T & vbTab & dso.SummaryProperties.LineCount
T = T & vbTab & Replace(dso.SummaryProperties.Manager, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.MultimediaClipCount
T = T & vbTab & dso.SummaryProperties.NoteCount
T = T & vbTab & dso.SummaryProperties.PageCount
T = T & vbTab & dso.SummaryProperties.ParagraphCount
T = T & vbTab & dso.SummaryProperties.PresentationFormat
T = T & vbTab & dso.SummaryProperties.RevisionNumber
T = T & vbTab & dso.SummaryProperties.SharedDocument
T = T & vbTab & dso.SummaryProperties.SlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Subject, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.Template
T = T & vbTab & Replace(dso.SummaryProperties.Title, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.TotalEditTime
T = T & vbTab & dso.SummaryProperties.Version
T = T & vbTab & dso.SummaryProperties.WordCount
T = Replace(T, vbLf, " ")
T = Replace(T, vbCr, " ")
Print #fNumR, T
End If
dso.Close
End If
DoEvents
Next
Close
Set dso = Nothing
Set fso = Nothing
MsgBox "Terminé"
End Sub
--
A+
Re
Voici le programme de Jacques adapté pour avoir toutes les propriétés
d'un fichier sur une même ligne.
Le choix du dossier est fait en cours d'exécution de la macro.
Il y a un fichier à part pour la trace des erreurs à l'ouverture, je
l'ai mis à part, car je fais des tests sur des dossiers qui ont
d'autres fichiers.
Dans le fichier rapport.txt il y a une première ligne avec les titres
des propriétés,
ensuite une ligne par fichier.
On ouvre Rapport.txt avec le bloc note, copie du contenu, collage dans
une feuille Excel.
La deuxième colonne est le nom de l'application, donc pas besoin a
priori d'isoler l'extension.
Il y a quelques Replace car je suis tombé sur des titres qui mettaient
la pagaïe.
Les deux fichiers résultats sont écrits dans le dossier concerné, il
est donc possible de traiter plusieurs dossiers dans la foulée.
J'ai un résultat pour les fichiers jpg et emf, je n'ai pas compris
pourquoi.
Attention aux retours à la ligne générés par le courrieleur:
Private Sub ListePropOfficeDSO()
Dim fso As Object ' FileSystemObject
Dim fld As Object ' Répertoire
Dim f As Object ' fichier
Dim dso As Object ' DSOFile
Dim fNumR As Integer
Dim fNumE As Integer
Dim Dossier As FileDialog
Dim T As String
Dim i As Integer
Dim e As Object
fNumR = FreeFile()
fNumE = fNumR + 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
Dossier.Title = "Sélectionner le dossier à traiter"
If Dossier.Show <> -1 Then Exit Sub
Set fld = fso.GetFolder(Dossier.InitialFileName)
Set dso = CreateObject("DSOfile.OleDocumentProperties")
Open Dossier.InitialFileName & "Rapport.txt" For Output As #fNumR
Open Dossier.InitialFileName & "Erreurs.txt" For Output As #fNumE
T = "Nom du fichier"
T = T & vbTab & "Application name: "
T = T & vbTab & "Author: "
T = T & vbTab & "Byte count: "
T = T & vbTab & "Category: "
T = T & vbTab & "Character count: "
T = T & vbTab & "Character count with spaces: "
T = T & vbTab & "Comments: "
T = T & vbTab & "Company: "
T = T & vbTab & "Date created: "
T = T & vbTab & "Date last printed: "
T = T & vbTab & "Date last saved: "
T = T & vbTab & "Hidden slide count: "
T = T & vbTab & "Keywords: "
T = T & vbTab & "Last saved by: "
T = T & vbTab & "Line count: "
T = T & vbTab & "Manager: "
T = T & vbTab & "Multimedia clip count: "
T = T & vbTab & "Note count: "
T = T & vbTab & "Page count: "
T = T & vbTab & "Paragraph count: "
T = T & vbTab & "Presentation format: "
T = T & vbTab & "Revision number: "
T = T & vbTab & "Shared document: "
T = T & vbTab & "Slide count: "
T = T & vbTab & "Subject: "
T = T & vbTab & "Template: "
T = T & vbTab & "Title: "
T = T & vbTab & "Total edit time: "
T = T & vbTab & "Version: "
T = T & vbTab & "Word count: "
Print #fNumR, T
On Error Resume Next
Err.Clear
For Each f In fld.Files
Err.Clear
dso.Open f
If Err.Number <> 0 Then
Print #fNumE, "Erreur ouverture : " & f.name & " " & _
Err.Number & "=" & Err.Description
Else
If dso.SummaryProperties.ApplicationName <> "" Then
T = f.name
T = T & vbTab & dso.SummaryProperties.ApplicationName
T = T & vbTab & Replace(dso.SummaryProperties.Author, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.ByteCount
T = T & vbTab & dso.SummaryProperties.Category
T = T & vbTab & dso.SummaryProperties.CharacterCount
T = T & vbTab & dso.SummaryProperties.CharacterCountWithSpaces
T = T & vbTab & Replace(dso.SummaryProperties.Comments, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.Company, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.DateCreated
T = T & vbTab & dso.SummaryProperties.DateLastPrinted
T = T & vbTab & dso.SummaryProperties.DateLastSaved
T = T & vbTab & dso.SummaryProperties.HiddenSlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Keywords, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.LastSavedBy,
vbTab, " ")
T = T & vbTab & dso.SummaryProperties.LineCount
T = T & vbTab & Replace(dso.SummaryProperties.Manager, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.MultimediaClipCount
T = T & vbTab & dso.SummaryProperties.NoteCount
T = T & vbTab & dso.SummaryProperties.PageCount
T = T & vbTab & dso.SummaryProperties.ParagraphCount
T = T & vbTab & dso.SummaryProperties.PresentationFormat
T = T & vbTab & dso.SummaryProperties.RevisionNumber
T = T & vbTab & dso.SummaryProperties.SharedDocument
T = T & vbTab & dso.SummaryProperties.SlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Subject, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.Template
T = T & vbTab & Replace(dso.SummaryProperties.Title, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.TotalEditTime
T = T & vbTab & dso.SummaryProperties.Version
T = T & vbTab & dso.SummaryProperties.WordCount
T = Replace(T, vbLf, " ")
T = Replace(T, vbCr, " ")
Print #fNumR, T
End If
dso.Close
End If
DoEvents
Next
Close
Set dso = Nothing
Set fso = Nothing
MsgBox "Terminé"
End Sub
--
A+
Je colle tout ça où ?
Dans une nouvelle Macro dans Word ?
Je colle tout ça où ?
Dans une nouvelle Macro dans Word ?
Je colle tout ça où ?
Dans une nouvelle Macro dans Word ?
Re
Voici le programme de Jacques adapté pour avoir toutes les propriétés
d'un fichier sur une même ligne.
Le choix du dossier est fait en cours d'exécution de la macro.
Il y a un fichier à part pour la trace des erreurs à l'ouverture, je
l'ai mis à part, car je fais des tests sur des dossiers qui ont
d'autres fichiers.
Dans le fichier rapport.txt il y a une première ligne avec les titres
des propriétés,
ensuite une ligne par fichier.
On ouvre Rapport.txt avec le bloc note, copie du contenu, collage dans
une feuille Excel.
La deuxième colonne est le nom de l'application, donc pas besoin a
priori d'isoler l'extension.
Il y a quelques Replace car je suis tombé sur des titres qui mettaient
la pagaïe.
Les deux fichiers résultats sont écrits dans le dossier concerné, il
est donc possible de traiter plusieurs dossiers dans la foulée.
J'ai un résultat pour les fichiers jpg et emf, je n'ai pas compris
pourquoi.
Attention aux retours à la ligne générés par le courrieleur:
Private Sub ListePropOfficeDSO()
Dim fso As Object ' FileSystemObject
Dim fld As Object ' Répertoire
Dim f As Object ' fichier
Dim dso As Object ' DSOFile
Dim fNumR As Integer
Dim fNumE As Integer
Dim Dossier As FileDialog
Dim T As String
Dim i As Integer
Dim e As Object
fNumR = FreeFile()
fNumE = fNumR + 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
Dossier.Title = "Sélectionner le dossier à traiter"
If Dossier.Show <> -1 Then Exit Sub
Set fld = fso.GetFolder(Dossier.InitialFileName)
Set dso = CreateObject("DSOfile.OleDocumentProperties")
Open Dossier.InitialFileName & "Rapport.txt" For Output As #fNumR
Open Dossier.InitialFileName & "Erreurs.txt" For Output As #fNumE
T = "Nom du fichier"
T = T & vbTab & "Application name: "
T = T & vbTab & "Author: "
T = T & vbTab & "Byte count: "
T = T & vbTab & "Category: "
T = T & vbTab & "Character count: "
T = T & vbTab & "Character count with spaces: "
T = T & vbTab & "Comments: "
T = T & vbTab & "Company: "
T = T & vbTab & "Date created: "
T = T & vbTab & "Date last printed: "
T = T & vbTab & "Date last saved: "
T = T & vbTab & "Hidden slide count: "
T = T & vbTab & "Keywords: "
T = T & vbTab & "Last saved by: "
T = T & vbTab & "Line count: "
T = T & vbTab & "Manager: "
T = T & vbTab & "Multimedia clip count: "
T = T & vbTab & "Note count: "
T = T & vbTab & "Page count: "
T = T & vbTab & "Paragraph count: "
T = T & vbTab & "Presentation format: "
T = T & vbTab & "Revision number: "
T = T & vbTab & "Shared document: "
T = T & vbTab & "Slide count: "
T = T & vbTab & "Subject: "
T = T & vbTab & "Template: "
T = T & vbTab & "Title: "
T = T & vbTab & "Total edit time: "
T = T & vbTab & "Version: "
T = T & vbTab & "Word count: "
Print #fNumR, T
On Error Resume Next
Err.Clear
For Each f In fld.Files
Err.Clear
dso.Open f
If Err.Number <> 0 Then
Print #fNumE, "Erreur ouverture : " & f.name & " " & _
Err.Number & "=" & Err.Description
Else
If dso.SummaryProperties.ApplicationName <> "" Then
T = f.name
T = T & vbTab & dso.SummaryProperties.ApplicationName
T = T & vbTab & Replace(dso.SummaryProperties.Author, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.ByteCount
T = T & vbTab & dso.SummaryProperties.Category
T = T & vbTab & dso.SummaryProperties.CharacterCount
T = T & vbTab & dso.SummaryProperties.CharacterCountWithSpaces
T = T & vbTab & Replace(dso.SummaryProperties.Comments, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.Company, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.DateCreated
T = T & vbTab & dso.SummaryProperties.DateLastPrinted
T = T & vbTab & dso.SummaryProperties.DateLastSaved
T = T & vbTab & dso.SummaryProperties.HiddenSlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Keywords, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.LastSavedBy,
vbTab, " ")
T = T & vbTab & dso.SummaryProperties.LineCount
T = T & vbTab & Replace(dso.SummaryProperties.Manager, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.MultimediaClipCount
T = T & vbTab & dso.SummaryProperties.NoteCount
T = T & vbTab & dso.SummaryProperties.PageCount
T = T & vbTab & dso.SummaryProperties.ParagraphCount
T = T & vbTab & dso.SummaryProperties.PresentationFormat
T = T & vbTab & dso.SummaryProperties.RevisionNumber
T = T & vbTab & dso.SummaryProperties.SharedDocument
T = T & vbTab & dso.SummaryProperties.SlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Subject, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.Template
T = T & vbTab & Replace(dso.SummaryProperties.Title, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.TotalEditTime
T = T & vbTab & dso.SummaryProperties.Version
T = T & vbTab & dso.SummaryProperties.WordCount
T = Replace(T, vbLf, " ")
T = Replace(T, vbCr, " ")
Print #fNumR, T
End If
dso.Close
End If
DoEvents
Next
Close
Set dso = Nothing
Set fso = Nothing
MsgBox "Terminé"
End Sub
--
A+
Re
Voici le programme de Jacques adapté pour avoir toutes les propriétés
d'un fichier sur une même ligne.
Le choix du dossier est fait en cours d'exécution de la macro.
Il y a un fichier à part pour la trace des erreurs à l'ouverture, je
l'ai mis à part, car je fais des tests sur des dossiers qui ont
d'autres fichiers.
Dans le fichier rapport.txt il y a une première ligne avec les titres
des propriétés,
ensuite une ligne par fichier.
On ouvre Rapport.txt avec le bloc note, copie du contenu, collage dans
une feuille Excel.
La deuxième colonne est le nom de l'application, donc pas besoin a
priori d'isoler l'extension.
Il y a quelques Replace car je suis tombé sur des titres qui mettaient
la pagaïe.
Les deux fichiers résultats sont écrits dans le dossier concerné, il
est donc possible de traiter plusieurs dossiers dans la foulée.
J'ai un résultat pour les fichiers jpg et emf, je n'ai pas compris
pourquoi.
Attention aux retours à la ligne générés par le courrieleur:
Private Sub ListePropOfficeDSO()
Dim fso As Object ' FileSystemObject
Dim fld As Object ' Répertoire
Dim f As Object ' fichier
Dim dso As Object ' DSOFile
Dim fNumR As Integer
Dim fNumE As Integer
Dim Dossier As FileDialog
Dim T As String
Dim i As Integer
Dim e As Object
fNumR = FreeFile()
fNumE = fNumR + 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
Dossier.Title = "Sélectionner le dossier à traiter"
If Dossier.Show <> -1 Then Exit Sub
Set fld = fso.GetFolder(Dossier.InitialFileName)
Set dso = CreateObject("DSOfile.OleDocumentProperties")
Open Dossier.InitialFileName & "Rapport.txt" For Output As #fNumR
Open Dossier.InitialFileName & "Erreurs.txt" For Output As #fNumE
T = "Nom du fichier"
T = T & vbTab & "Application name: "
T = T & vbTab & "Author: "
T = T & vbTab & "Byte count: "
T = T & vbTab & "Category: "
T = T & vbTab & "Character count: "
T = T & vbTab & "Character count with spaces: "
T = T & vbTab & "Comments: "
T = T & vbTab & "Company: "
T = T & vbTab & "Date created: "
T = T & vbTab & "Date last printed: "
T = T & vbTab & "Date last saved: "
T = T & vbTab & "Hidden slide count: "
T = T & vbTab & "Keywords: "
T = T & vbTab & "Last saved by: "
T = T & vbTab & "Line count: "
T = T & vbTab & "Manager: "
T = T & vbTab & "Multimedia clip count: "
T = T & vbTab & "Note count: "
T = T & vbTab & "Page count: "
T = T & vbTab & "Paragraph count: "
T = T & vbTab & "Presentation format: "
T = T & vbTab & "Revision number: "
T = T & vbTab & "Shared document: "
T = T & vbTab & "Slide count: "
T = T & vbTab & "Subject: "
T = T & vbTab & "Template: "
T = T & vbTab & "Title: "
T = T & vbTab & "Total edit time: "
T = T & vbTab & "Version: "
T = T & vbTab & "Word count: "
Print #fNumR, T
On Error Resume Next
Err.Clear
For Each f In fld.Files
Err.Clear
dso.Open f
If Err.Number <> 0 Then
Print #fNumE, "Erreur ouverture : " & f.name & " " & _
Err.Number & "=" & Err.Description
Else
If dso.SummaryProperties.ApplicationName <> "" Then
T = f.name
T = T & vbTab & dso.SummaryProperties.ApplicationName
T = T & vbTab & Replace(dso.SummaryProperties.Author, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.ByteCount
T = T & vbTab & dso.SummaryProperties.Category
T = T & vbTab & dso.SummaryProperties.CharacterCount
T = T & vbTab & dso.SummaryProperties.CharacterCountWithSpaces
T = T & vbTab & Replace(dso.SummaryProperties.Comments, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.Company, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.DateCreated
T = T & vbTab & dso.SummaryProperties.DateLastPrinted
T = T & vbTab & dso.SummaryProperties.DateLastSaved
T = T & vbTab & dso.SummaryProperties.HiddenSlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Keywords, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.LastSavedBy,
vbTab, " ")
T = T & vbTab & dso.SummaryProperties.LineCount
T = T & vbTab & Replace(dso.SummaryProperties.Manager, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.MultimediaClipCount
T = T & vbTab & dso.SummaryProperties.NoteCount
T = T & vbTab & dso.SummaryProperties.PageCount
T = T & vbTab & dso.SummaryProperties.ParagraphCount
T = T & vbTab & dso.SummaryProperties.PresentationFormat
T = T & vbTab & dso.SummaryProperties.RevisionNumber
T = T & vbTab & dso.SummaryProperties.SharedDocument
T = T & vbTab & dso.SummaryProperties.SlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Subject, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.Template
T = T & vbTab & Replace(dso.SummaryProperties.Title, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.TotalEditTime
T = T & vbTab & dso.SummaryProperties.Version
T = T & vbTab & dso.SummaryProperties.WordCount
T = Replace(T, vbLf, " ")
T = Replace(T, vbCr, " ")
Print #fNumR, T
End If
dso.Close
End If
DoEvents
Next
Close
Set dso = Nothing
Set fso = Nothing
MsgBox "Terminé"
End Sub
--
A+
Re
Voici le programme de Jacques adapté pour avoir toutes les propriétés
d'un fichier sur une même ligne.
Le choix du dossier est fait en cours d'exécution de la macro.
Il y a un fichier à part pour la trace des erreurs à l'ouverture, je
l'ai mis à part, car je fais des tests sur des dossiers qui ont
d'autres fichiers.
Dans le fichier rapport.txt il y a une première ligne avec les titres
des propriétés,
ensuite une ligne par fichier.
On ouvre Rapport.txt avec le bloc note, copie du contenu, collage dans
une feuille Excel.
La deuxième colonne est le nom de l'application, donc pas besoin a
priori d'isoler l'extension.
Il y a quelques Replace car je suis tombé sur des titres qui mettaient
la pagaïe.
Les deux fichiers résultats sont écrits dans le dossier concerné, il
est donc possible de traiter plusieurs dossiers dans la foulée.
J'ai un résultat pour les fichiers jpg et emf, je n'ai pas compris
pourquoi.
Attention aux retours à la ligne générés par le courrieleur:
Private Sub ListePropOfficeDSO()
Dim fso As Object ' FileSystemObject
Dim fld As Object ' Répertoire
Dim f As Object ' fichier
Dim dso As Object ' DSOFile
Dim fNumR As Integer
Dim fNumE As Integer
Dim Dossier As FileDialog
Dim T As String
Dim i As Integer
Dim e As Object
fNumR = FreeFile()
fNumE = fNumR + 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
Dossier.Title = "Sélectionner le dossier à traiter"
If Dossier.Show <> -1 Then Exit Sub
Set fld = fso.GetFolder(Dossier.InitialFileName)
Set dso = CreateObject("DSOfile.OleDocumentProperties")
Open Dossier.InitialFileName & "Rapport.txt" For Output As #fNumR
Open Dossier.InitialFileName & "Erreurs.txt" For Output As #fNumE
T = "Nom du fichier"
T = T & vbTab & "Application name: "
T = T & vbTab & "Author: "
T = T & vbTab & "Byte count: "
T = T & vbTab & "Category: "
T = T & vbTab & "Character count: "
T = T & vbTab & "Character count with spaces: "
T = T & vbTab & "Comments: "
T = T & vbTab & "Company: "
T = T & vbTab & "Date created: "
T = T & vbTab & "Date last printed: "
T = T & vbTab & "Date last saved: "
T = T & vbTab & "Hidden slide count: "
T = T & vbTab & "Keywords: "
T = T & vbTab & "Last saved by: "
T = T & vbTab & "Line count: "
T = T & vbTab & "Manager: "
T = T & vbTab & "Multimedia clip count: "
T = T & vbTab & "Note count: "
T = T & vbTab & "Page count: "
T = T & vbTab & "Paragraph count: "
T = T & vbTab & "Presentation format: "
T = T & vbTab & "Revision number: "
T = T & vbTab & "Shared document: "
T = T & vbTab & "Slide count: "
T = T & vbTab & "Subject: "
T = T & vbTab & "Template: "
T = T & vbTab & "Title: "
T = T & vbTab & "Total edit time: "
T = T & vbTab & "Version: "
T = T & vbTab & "Word count: "
Print #fNumR, T
On Error Resume Next
Err.Clear
For Each f In fld.Files
Err.Clear
dso.Open f
If Err.Number <> 0 Then
Print #fNumE, "Erreur ouverture : " & f.name & " " & _
Err.Number & "=" & Err.Description
Else
If dso.SummaryProperties.ApplicationName <> "" Then
T = f.name
T = T & vbTab & dso.SummaryProperties.ApplicationName
T = T & vbTab & Replace(dso.SummaryProperties.Author, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.ByteCount
T = T & vbTab & dso.SummaryProperties.Category
T = T & vbTab & dso.SummaryProperties.CharacterCount
T = T & vbTab & dso.SummaryProperties.CharacterCountWithSpaces
T = T & vbTab & Replace(dso.SummaryProperties.Comments, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.Company, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.DateCreated
T = T & vbTab & dso.SummaryProperties.DateLastPrinted
T = T & vbTab & dso.SummaryProperties.DateLastSaved
T = T & vbTab & dso.SummaryProperties.HiddenSlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Keywords, vbTab,
" ")
T = T & vbTab & Replace(dso.SummaryProperties.LastSavedBy,
vbTab, " ")
T = T & vbTab & dso.SummaryProperties.LineCount
T = T & vbTab & Replace(dso.SummaryProperties.Manager, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.MultimediaClipCount
T = T & vbTab & dso.SummaryProperties.NoteCount
T = T & vbTab & dso.SummaryProperties.PageCount
T = T & vbTab & dso.SummaryProperties.ParagraphCount
T = T & vbTab & dso.SummaryProperties.PresentationFormat
T = T & vbTab & dso.SummaryProperties.RevisionNumber
T = T & vbTab & dso.SummaryProperties.SharedDocument
T = T & vbTab & dso.SummaryProperties.SlideCount
T = T & vbTab & Replace(dso.SummaryProperties.Subject, vbTab,
" ")
T = T & vbTab & dso.SummaryProperties.Template
T = T & vbTab & Replace(dso.SummaryProperties.Title, vbTab, "
")
T = T & vbTab & dso.SummaryProperties.TotalEditTime
T = T & vbTab & dso.SummaryProperties.Version
T = T & vbTab & dso.SummaryProperties.WordCount
T = Replace(T, vbLf, " ")
T = Replace(T, vbCr, " ")
Print #fNumR, T
End If
dso.Close
End If
DoEvents
Next
Close
Set dso = Nothing
Set fso = Nothing
MsgBox "Terminé"
End Sub
--
A+
mais je le colle où ?
J'ai peur de ne pas avoir d'éditeur de scipt sur mon poste,
j'ai bien essayé de le coller dans une nouvelle macro de l'éditeur de VBA
atteind via Word, mais sans résultat.
mais je le colle où ?
J'ai peur de ne pas avoir d'éditeur de scipt sur mon poste,
j'ai bien essayé de le coller dans une nouvelle macro de l'éditeur de VBA
atteind via Word, mais sans résultat.
mais je le colle où ?
J'ai peur de ne pas avoir d'éditeur de scipt sur mon poste,
j'ai bien essayé de le coller dans une nouvelle macro de l'éditeur de VBA
atteind via Word, mais sans résultat.
mais je le colle où ?
J'ai peur de ne pas avoir d'éditeur de scipt sur mon poste,
j'ai bien essayé de le coller dans une nouvelle macro de l'éditeur de VBA
atteind via Word, mais sans résultat.
C'est une macro, le plus simple :
dans l'éditeur vba :
Insertion Module
et vous y copiez le code en supprimant les retours à la ligne
intempestifs.
--
A+
Pour les retours à la ligne, c'est tout bon : viser les lignes en rouge,
mais je le colle où ?
J'ai peur de ne pas avoir d'éditeur de scipt sur mon poste,
j'ai bien essayé de le coller dans une nouvelle macro de l'éditeur de VBA
atteind via Word, mais sans résultat.
C'est une macro, le plus simple :
dans l'éditeur vba :
Insertion Module
et vous y copiez le code en supprimant les retours à la ligne
intempestifs.
--
A+
Pour les retours à la ligne, c'est tout bon : viser les lignes en rouge,
mais je le colle où ?
J'ai peur de ne pas avoir d'éditeur de scipt sur mon poste,
j'ai bien essayé de le coller dans une nouvelle macro de l'éditeur de VBA
atteind via Word, mais sans résultat.
C'est une macro, le plus simple :
dans l'éditeur vba :
Insertion Module
et vous y copiez le code en supprimant les retours à la ligne
intempestifs.
--
A+
Pour les retours à la ligne, c'est tout bon : viser les lignes en rouge,