Voir le flux RSS

Eric KERGRESSE

Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word

Noter ce billet
par , 14/08/2017 à 06h18 (174 Affichages)
Ce billet fait suite à ce message dans le forum Vba-Word : nom-objets-inlineshapes.

Word permet de mémoriser des informations dans la collection Variables d'un document. Ceci est particulièrement intéressant si le but est d'exploiter ces infos à des fins statistiques par la suite.

Il faut mémoriser par couple d'infos : Info 1 : le nom de la variable, info 2 : sa valeur. Ici, je me suis servi d'une matrice pour récupérer les informations.

Pour injecter des infos dans un document Word :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
Option Explicit
 
Sub MemorisationDesInformationsAvecMacro1(ByVal DocEnCours As Document, ByVal MesInfos As Variant)
 
Dim Numero As Integer
 
    With DocEnCours
         For Numero = LBound(MesInfos) To UBound(MesInfos) Step 2
             .Variables.Add Name:=MesInfos(Numero), Value:=MesInfos(Numero + 1)
         Next Numero
    End With
  
End Sub
 
Sub EssaiMemoAvecMacro1()
 
Dim MonDocument As Document
Dim I As Integer
Dim MonMemo As Variant
 
    MonMemo = Array("Info1", "Valeur Info1", "Info2", "Valeur Info2", "Info3", "Valeur Info3", "Info4", "Valeur Info4")
 
    Set MonDocument = Documents.Add
    With MonDocument
         I = 4
         MemorisationDesInformationsAvecMacro1 MonDocument, MonMemo
         .SaveAs2 FileName:="Doc avec mémo " & I & ".docm"
         .Close savechanges:=True
    End With
    Set MonDocument = Nothing
 
End Sub
Pour récupérer les infos contenues dans la collection du document créé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
Sub RecupInfosAvecMacro2()
 
Dim MonDocument As Document
Dim MatriceInfos() As Variant
Dim I As Integer
Dim PresenceInfos As Boolean
Dim MesInfosStockees As String
 
 
    ' Lecture
    PresenceInfos = False
    Set MonDocument = ActiveDocument
    With MonDocument
         If .Variables.Count > 0 Then
            PresenceInfos = True
            ReDim MatriceInfos(.Variables.Count - 1, 1)
            For I = 1 To .Variables.Count
                MatriceInfos(I - 1, 0) = .Variables(I).Name
                MatriceInfos(I - 1, 1) = .Variables(I).Value
            Next I
         End If
    End With
    Set MonDocument = Nothing
 
    ' Restitution
    MesInfosStockees = ""
    If PresenceInfos = True Then
       For I = LBound(MatriceInfos, 1) To UBound(MatriceInfos, 1)
           MesInfosStockees = MesInfosStockees & MatriceInfos(I, 0) & " : " & MatriceInfos(I, 1) & Chr(10)
       Next I
       MsgBox MesInfosStockees, vbInformation, "Infos stockées dans la collection Variables"
    Else
       MsgBox "Aucune information stockée dans le document !", vbInformation, "Infos stockées dans la collection Variables"
    End If
 
End Sub

Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog Viadeo Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog Twitter Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog Google Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog Facebook Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog Digg Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog Delicious Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog MySpace Envoyer le billet « Sauvegarder et lire par macro des infos dans la collection Variables d'un document Word » dans le blog Yahoo

Commentaires