- Comment, en vba, obtenir les propriétés avancées d'un docume
- Wetransfer obtenir un lien - Guide
- Accéder aux options de démarrage avancées de windows 10 - Guide
- Comment obtenir windows 10 gratuitement - Accueil - Mise à jour
- Affichez les propriétés du fichier que vous voyez sur l’écran ci-dessous. qui est l’auteur du fichier ? ✓ - Forum Windows
- Find vba - Astuces et Solutions
3 réponses
16 mars 2023 à 12:11
bonjour,
as-tu essayé ainsi?
https://learn.microsoft.com/fr-ch/office/vba/api/word.document.builtindocumentproperties
Oui, je veux récupérer l'information (nom du modèle de création) sur un document fermé.
16 mars 2023 à 17:31
Et le programme peut-il ouvrir ce document, et le refermer, ou doit-il rester fermé?
Modifié le 16 mars 2023 à 18:42
non, pour récupérer la valeur, le document ne doit pas être ouvert et affiché à l'écran.
16 mars 2023 à 21:43
Et si jamais il y avait moyen de l'ouvrir sans que cela ne soit visible à l'écran?
Peux-tu donner plus d'information?
16 mars 2023 à 22:08
En fait non, je dois avant de l'ouvrir, vérifier une condition, et si c'est bon, je l'ouvre. C'est là toute la difficulté :-)
17 mars 2023 à 08:57
Qu'est-ce qui empêche de l'ouvrir un instant afin de vérifier cette propriété?
En fait, j'ai trouvé une solution. A la création de chaque document, je crée un mot-clé avec "ActiveDocument.BuiltInDocumentProperties("Keywords").Value = ..." que je peux ensuite récupérer lorsque le document est fermé.
Merci pour ta collaboration !
Bonne Journée,
David
20 mars 2023 à 20:35
Comment récupères-tu cette valeur sans ouvrir le document?
22 mars 2023 à 11:57
J'ai les 2 fonctions suivantes :
Public Function M2_GetKeywordPropertyValue_4ClosedDoc(ByVal sFile As String, ByVal keyOfProp As String) As String
Dim oDic As Object
Dim k As Variant
Dim i As Integer
Dim chaine As String
Dim valeurs() As String
Dim paire() As String
Set oDic = M2_GetFileProperties(sFile)
For Each k In oDic.Keys
If k = "Mots clés" Then ' attention "Mots clés" est en français !!!
chaine = oDic(k)
If Left(chaine, 13) = keyOfProp Then
'Récupère la valeur en fonction de sa clé
'..... ..................................
valeurs = Split(chaine, ";")
For i = 0 To UBound(valeurs)
paire = Split(valeurs(i), ":")
If LCase(Trim(paire(0))) = LCase(Trim(keyOfProp)) Then
chaine = paire(1) ' La clé a été trouvée, récupération de la valeur correspondante
Exit For
End If
Next i
'.....
M2_GetKeywordPropertyValue_4ClosedDoc = chaine
Exit Function
End If
End If
Next
If Not oDic Is Nothing Then Set oDic = Nothing
End Function
' -----------------------------
Function M2_GetFileProperties(ByVal sFile As String) As Object
On Error GoTo Error_Handler
Dim oDic As Object 'Scripting.Dictionary
Dim oShell As Object 'Shell
Dim oFolder As Object 'Folder
Dim oFolderItem As Object 'FolderItem
Dim sFilePath As String
Dim sFileName As String
Dim i As Long
Dim vPropValue As Variant
sFilePath = Left(sFile, InStrRev(sFile, "\") - 1)
sFileName = Right(sFile, Len(sFile) - InStrRev(sFile, "\"))
Set oDic = CreateObject("Scripting.Dictionary")
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.NameSpace(CStr(sFilePath))
If (Not oFolder Is Nothing) Then
Set oFolderItem = oFolder.ParseName(sFileName)
For i = 0 To 320 'This could be bumped up in case MS increase the number again
vPropValue = oFolder.GetDetailsOf(oFolderItem, i)
If Trim(vPropValue & vbNullString) <> "" Then
vPropValue = Replace(Replace(Replace(Replace(vPropValue, ChrW(8236), ""), ChrW(8234), ""), ChrW(8207), ""), ChrW(8206), "")
oDic.Add oFolder.GetDetailsOf(oFolder.Items, i), vPropValue
End If
Next
End If
Set M2_GetFileProperties = oDic
End Function
16 mars 2023 à 12:51
Merci pour ton retour !
Je crois que c'est pour un document ouvert ! Mais je souhaite récupérer les propriétés avancées d'un document fermé, sans l'ouvrir.
16 mars 2023 à 13:02
Je ne pense pas que cela soit possible sans l'ouvrir.
Pourquoi le programme ne peut-il ouvrir le document?
16 mars 2023 à 14:25
Le programme peut bien sur ouvrir le document, mais ce que j'ai besoin c'est d'avoir l'info en question, avant de l'ouvrir !
16 mars 2023 à 17:01
Le programme peut donc ouvrir le document, mais il doit afficher l'information avant de l'ouvrir?