Hej Kim
Her følger et roman-forslag til, hvordan problemet kan løses,
hvis jeg da har forstået det rigtigt. Hvis du ikke kan få det til
at "funge", er du velkommen tilbage (det er du også, hvis du
*kan* få det til at virke
1. Åbn Brevmaske.dot (eller hvad den nu hedder)
2. Placér markøren, hvor titlen skal stå.
3. Indtast følgende felter: { } indsættes med <Ctrl><F9>
{ macrobutton CallTitleBox { docvariable Title } }
4. Gå til en tom linie i masken og skriv de forskellige titler,
én titel pr linie (afsnit)
5. Markér alle titlerne, sorter dem evt. og vælg Funktioner >
Autokorrektur og fanen "Autotekst"
6. I boksen "Søg i:" vælger du Brevmaske.dot
7. I boksen "Skriv autoteksten her:" skrives "tc" (TitleContainer) uden
gåseøjne. (alt mulig andet kan selvfølgelig også bruges)
8. Klik "Tilføj"
9. Slet alle linierne med titler.
10. Gå til VBA editoren med <Alt><F11>
11. Klik på "Brevmaske " i projektvinduet og vælg Insert > Userform.
12. Fremstil en userform, der indeholder 1 listboks og 1 kommandoknap.
13. Indsæt følgende kode i userformens kodeark (dobbeltklik på
userformen)
-----------------------
Private Sub CommandButton1_Click()
SetTitle ListBox1.Value
Unload Me
End Sub
Private Sub UserForm_Initialize()
'leo.heuser@get2net.dk, 3. september 2001
Dim TitleString As String
Dim SaveCR As Long
Dim CR As Long
On Error GoTo Finito
TitleString = _
ActiveDocument.AttachedTemplate.AutoTextEntries("tc")
SaveCR = 1
CR = InStr(TitleString, vbCr)
ListBox1.Clear
Do While CR
ListBox1.AddItem Mid(TitleString, SaveCR, CR - SaveCR)
SaveCR = CR + 1
CR = InStr(SaveCR, TitleString, vbCr)
Loop
With ListBox1
.ListIndex = 0
.SetFocus
End With
Finito:
End Sub
--------------------------
14. Vælg Insert > Module og indsæt følgende kode i
modulets kodevindue:
-----------------
Sub SetTitle(Title)
On Error Resume Next
With ActiveDocument
.Variables.Add Name:="Title"
.Variables("Title").Value = Title
.Fields.Update
End With
End Sub
Sub CallTitleBox()
UserForm1.Show
End Sub
------------------
15. Gå tilbage til dokumentet med <Alt><F11>
16. Skjul felter med <Alt><F9> (her skal det gøres 2 gange)
17. Dobbeltklik, hvor titlen skal stå.
18. Vælg en tilfældig titel fra userformen.
19. Gem skabelonen med rettelser og luk den.
Du er nu klar til at bruge brevmasken.
Opret et brev, dobbeltklik på den titel, der står, og vælg den korrekte.
Når der skal rettes/tilføjes/slettes titler foregår det således:
A. Opret et nyt brev (eller åbn Brevmaske.dot)
B. På en tom linie skrives "tc" uden gåseøjne, og du trykker <F3>
C. Ret/tilføj/slet i listen, sortér den evt. og gentag punkt 5 og 6.
D. Markér "tc" og tryk "Tilføj" og svar "Ja" til at omdefinere
autoteksten.
E. Luk dokumentet og svar "Ja", når der spørges "Skal ændringer
i Brevmaske.dot gemmes?"
Sådan!
--
Med venlig hilsen
LeoH
Excel MVP
"KN" <kn@frrasch.dk> skrev i en meddelelse
news:Evrj7.20783$3q.704159@news010.worldonline.dk...
> Hej
>
> Opgave:
> I en brevmaske skal der indsættes navn, titel og e-mail på brugeren.
> Brevmaskerne er på forskellige sprog. Navn og e-mail er jo
sproguafhængige,
> og kan indsættes fra brugeroplysninger. Mit problem er titlen.
>
> Ide:
> Kan man i en makro tilknyttet masken vedligeholde en liste eller en matrix
> (evt. variabler), hvor man så kan indsætte den korrekte titel i masken?
>
> ...eller findes der en helt tredje måde at gøre det på?
>
> mvh Kim
>
>