Les propriétés de document personnalisées sont un excellent moyen de stocker des informations uniques associées à un document. Par exemple, vous pouvez avoir un numéro de document attribué à l’entreprise qui doit être stocké avec un document. Une propriété personnalisée convient parfaitement à cette fin.

Lorsque vous ajoutez des propriétés personnalisées à un document, vous pouvez commencer à vous demander s’il existe un moyen simple de les copier d’un document à un autre.

Malheureusement, il n’y a aucun moyen de faire cela. (À mon avis, cette capacité constituerait un excellent ajout à l’organisateur.) Vous pouvez, cependant, créer une macro qui fera la copie pour vous. La macro suivante fera exactement cela:

Sub CopyDocProps()

Dim dp() As DocumentProperty     Dim CustomPropCount As Integer     Dim i As Integer     Dim intResponse As Integer

If Windows.Count > 2 Then         MsgBox "There are more than two windows. Please " & _           "close the others and re-run the macro.", , _           "Too many windows"

Exit Sub     End If

On Error GoTo Err_Handler

intResponse = MsgBox("Are you currently in the source document?", _       vbYesNoCancel, "Copy Custom Properties")



If intResponse = vbNo Then Application.Run MacroName:="NextWindow"



CustomPropCount = ActiveDocument.CustomDocumentProperties.Count     ReDim dp(1 To CustomPropCount)



For i = 1 To CustomPropCount         Set dp(i) = ActiveDocument.CustomDocumentProperties(i)

Next i

Application.Run MacroName:="NextWindow"



For i = 1 To CustomPropCount         If dp(i).LinkToContent = True Then             ActiveDocument.CustomDocumentProperties.Add _               Name:=dp(i).Name, _               LinkToContent:=True, _               Value:=dp(i).Value, _               Type:=dp(i).Type, _               LinkSource:=dp(i).LinkSource         Else             ActiveDocument.CustomDocumentProperties.Add _               Name:=dp(i).Name, _               LinkToContent:=False, _               Value:=dp(i).Value, _               Type:=dp(i).Type         End If     Next i

MsgBox "The properties have been copied."

Exit Sub

Err_Handler:

' if Word raises an error, then allow the user     ' to update the custom document property          intResponse = MsgBox("The custom document property (" & _       dp(i).Name & ") already exists." & vbCrLf & vbCrLf & _       "Do you want to update the value?", vbYesNoCancel, _       "Copy Custom Properties")



Select Case Response         Case vbCancel             End         Case vbYes             ActiveDocument.CustomDocumentProperties(dp(i).Name).Value _               = dp(i).Value             Resume Next         Case vbNo             Resume Next     End Select End Sub

Ce code est un exemple de copie des propriétés personnalisées, mais il n’est pas à toute épreuve. Par exemple, il ne vérifie pas s’il existe réellement des propriétés personnalisées dans le document source; il suppose simplement qu’il y en a. Un tel codage pourrait cependant être facilement ajouté.

Pour utiliser la macro, assurez-vous que seuls les documents source et cible sont ouverts et que vous ne devez avoir qu’une seule fenêtre ouverte par document. Lorsque la macro est terminée, vous devrez enregistrer le document cible.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

WordTips est votre source pour une formation Microsoft Word rentable.

(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (1340) s’applique à Microsoft Word 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban de Word (Word 2007 et plus tard) ici:

link: / wordribbon-Copying_Custom_Properties [Copie des propriétés personnalisées].