Je crée un document Word avec des contrôles de contenu qui seront utilisés comme un formulaire. Les listes déroulantes proviendront d'un classeur et seront ajustées dynamiquement en fonction des choix effectués. Au lieu de ré-accéder au classeur à chaque fois (et de ralentir les choses), j'essaye de stocker les informations nécessaires dans les tableaux et les dictionnaires à utiliser pendant le remplissage du formulaire à Document_Open(). Je n'ai pas besoin (et je ne veux pas) des tableaux/dict stockés après que l'utilisateur ferme le document.VBA Word - Comment stocker tableau ou dict ou coll lorsque le document est ouvert
J'ai essayé de déclarer un dict public en dehors de la fonction, sans succès (ou peut-être que je me trompe?). Quelqu'un peut me diriger dans la bonne direction.
merci
Public dict As Object
Public Sub Document_Open()
Set dict = CreateObject("Scripting.Dictionary")
Dim xlApp As Object
Dim xlWB As Object
Dim xlWS As Object
Dim cRows As Integer
Dim i As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Open("O:\[..]\Library.xlsx")
Set xlWS = xlWB.Worksheets(1)
cRows = 21
For i = 1 To cRows
dict.Add xlWS.Range("C2").Cells(i, 1).Value, xlWS.Range("C2").Cells(i, 2).Value
Next i
Set xlWS = Nothing
Set xlWB = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
sera lancé plus tard
Sub test()
Debug.Print dict("random key")
End Sub