Avatar billede celal Nybegynder
01. september 2006 - 16:21 Der er 16 kommentarer og
2 løsninger

Problemer med programmering med bookmarks i word

Jeg har en word skabelon, hvor man ved opstart indtaster nogle oplysinger som efter man klikker på "ok" bliver lagt ind i word dokumentet. Men jeg får ikke alle oplysninger på dokumentet. Jeg bruger bookmarks. Jeg får en fejlmeddelelse om at programmet ikke kan finde "bookmarken". Jeg har kontroleret og prøvet flere gange at tilføje bogmærket med samme navn osv. men lige lige lidt hjælper det. Er der nogen som ´ved om det er problemer med VBA og bookmarks i word 2003? Det har virket før på word 97, men efter jeg har kopiret fra en anden skabelon og samtidg tilføjet nogle flere felter, virker det ikke mere.

Min kode i Makroen/visual basic ser således ud.


Public Sub MAIN()

    WordBasic.BeginDialog 500, 480, "Brevpapir/FEM"
   
    WordBasic.Text 10, 6, 64, 13, "Firma:"
    WordBasic.TextBox 10, 22, 300, 18, "boxFirma"
    WordBasic.Text 10, 46, 64, 13, "Adresse:"
    WordBasic.TextBox 10, 62, 300, 18, "boxAdresse1:"
    WordBasic.TextBox 10, 82, 300, 18, "boxAdresse2:"
    WordBasic.TextBox 10, 102, 300, 18, "boxBY"
    WordBasic.Text 10, 126, 64, 13, "Att:"
    WordBasic.TextBox 10, 142, 300, 18, "boxAtt"
    WordBasic.Text 10, 166, 300, 13, "Afsender:"
    WordBasic.TextBox 10, 181, 300, 18, "boxAfsender"
    WordBasic.Text 10, 206, 300, 13, "Overskrift:"
    WordBasic.TextBox 10, 221, 300, 18, "boxOverskrift"
    WordBasic.Text 10, 245, 300, 13, "Dato:"
    WordBasic.TextBox 10, 260, 300, 18, "boxDato"
    WordBasic.Text 10, 283, 300, 13, "Jobnr:"
    WordBasic.TextBox 10, 298, 300, 18, "boxJobnr"
    WordBasic.Text 10, 322, 300, 13, "Filnavn:"
    WordBasic.TextBox 10, 337, 300, 18, "boxFilnavn"
    WordBasic.Text 10, 362, 300, 13, "Sign:"
    WordBasic.TextBox 10, 377, 300, 18, "boxSign"
   
    WordBasic.OKButton 121, 435, 88, 21
    WordBasic.CancelButton 223, 435, 88, 21
   
    WordBasic.EndDialog

On Error GoTo -1: On Error GoTo slut

Dim dlg As Object: Set dlg = WordBasic.CurValues.UserDialog
WordBasic.Dialog.UserDialog dlg

WordBasic.ViewHeader

WordBasic.EditBookmark Name:="Firma", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxFirma

WordBasic.EditBookmark Name:="Adresse1", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxAdresse1

WordBasic.EditBookmark Name:="Adresse2", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxAdresse2

WordBasic.EditBookmark Name:="by", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxBY

WordBasic.EditBookmark Name:="Att", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxAtt

WordBasic.CloseViewHeaderFooter


WordBasic.EditBookmark Name:="Afsender", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxAfsender

WordBasic.EditBookmark Name:="Overskrift", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxOverskrift


WordBasic.EditBookmark Name:="Dato", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxDato

WordBasic.EditBookmark Name:="Jobnr", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxJobnr

WordBasic.EditBookmark Name:="Filnavn", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxFilnavn

WordBasic.EditBookmark Name:="Sign", SortBy:=1, GoTo:=1
WordBasic.Insert dlg.boxSign


Selection.Find.ClearFormatting
   
    Selection.Find.Replacement.ClearFormatting
   
    With Selection.Find
        .Text = "^p^p"
        .Replacement.Text = "^p"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll



WordBasic.WW6_EditClear

slut:

End Sub
Avatar billede rvm Nybegynder
01. september 2006 - 20:14 #1
Det er godt nok noget gammel kode - fra før Word97 :-)

Jeg ville ændre alle stederne, hvor jeg indsætter i bogmærker til dette:


If ActiveDocument.Bookmarks.Exists("Bogmærkenavn") = True Then
    ActiveDocument.Bookmarks("Bogmærkenavn").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxSign
End If
Avatar billede supertekst Ekspert
02. september 2006 - 16:00 #2
Som rvm nævner er det "en røst fra fortiden" - men det virker alligevel hvis du sletter det KOLON, som er til slut i linierne ved "boxAdresse1 & 2".
Det er jo netop ikke en ledetekst - men def. af tekstbokse - derfor.

Det kunne gøres noget mere "letbenet" m/anvendelse af en "Userform & VBA fra vor tid".
Avatar billede celal Nybegynder
07. september 2006 - 12:12 #3
rvm: jeg har nu ændret den kode som du siger jeg skal ændre, men jeg får kun firma med, som er den første, og resten tager den ikke med. Hvad går galt. Her min nye kode:


Public Sub MAIN()

    WordBasic.BeginDialog 500, 480, "Brevpapir/FEM"
   
    WordBasic.Text 10, 6, 64, 13, "Firma:"
    WordBasic.TextBox 10, 22, 300, 18, "boxFirma"
    WordBasic.Text 10, 46, 64, 13, "Adresse:"
    WordBasic.TextBox 10, 62, 300, 18, "boxAdresse1:"
    WordBasic.TextBox 10, 82, 300, 18, "boxAdresse2:"
    WordBasic.TextBox 10, 102, 300, 18, "boxBY"
    WordBasic.Text 10, 126, 64, 13, "Att:"
    WordBasic.TextBox 10, 142, 300, 18, "boxAtt"
    WordBasic.Text 10, 166, 300, 13, "Afsender:"
    WordBasic.TextBox 10, 181, 300, 18, "boxAfsender"
    WordBasic.Text 10, 206, 300, 13, "Overskrift:"
    WordBasic.TextBox 10, 221, 300, 18, "boxOverskrift"
    WordBasic.Text 10, 245, 300, 13, "Dato:"
    WordBasic.TextBox 10, 260, 300, 18, "boxDato"
    WordBasic.Text 10, 283, 300, 13, "Jobnr:"
    WordBasic.TextBox 10, 298, 300, 18, "boxJobnr"
    WordBasic.Text 10, 322, 300, 13, "Filnavn:"
    WordBasic.TextBox 10, 337, 300, 18, "boxFilnavn"
    WordBasic.Text 10, 362, 300, 13, "Sign:"
    WordBasic.TextBox 10, 377, 300, 18, "boxSign"
   
    WordBasic.OKButton 121, 435, 88, 21
    WordBasic.CancelButton 223, 435, 88, 21
   
    WordBasic.EndDialog

On Error GoTo -1: On Error GoTo slut

Dim dlg As Object: Set dlg = WordBasic.CurValues.UserDialog
WordBasic.Dialog.UserDialog dlg

WordBasic.ViewHeader

If ActiveDocument.Bookmarks.Exists("Firma") = True Then
    MsgBox "Firma findes"
    ActiveDocument.Bookmarks("Firma").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxFirma
End If


If ActiveDocument.Bookmarks.Exists("Adresse1") = True Then
    MsgBox "Adresse1 findes"
    ActiveDocument.Bookmarks("Adresse1").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxAdresse1
End If

If ActiveDocument.Bookmarks.Exists("Adresse2") = True Then
    MsgBox "Adresse2 findes"
    ActiveDocument.Bookmarks("Adresse2").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxAdresse2
End If

If ActiveDocument.Bookmarks.Exists("By") = True Then
    MsgBox "By findes"
    ActiveDocument.Bookmarks("By").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxBY
End If

If ActiveDocument.Bookmarks.Exists("Att") = True Then
    MsgBox "Att findes"
    ActiveDocument.Bookmarks("Att").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxAtt
End If


WordBasic.CloseViewHeaderFooter


If ActiveDocument.Bookmarks.Exists("Afsender") = True Then
    MsgBox "Afsender findes"
    ActiveDocument.Bookmarks("Afsender").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxAfsender
End If

If ActiveDocument.Bookmarks.Exists("Overskrift") = True Then
    MsgBox "Overskrift findes"
    ActiveDocument.Bookmarks("Overskrift").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxOverskrift
End If

If ActiveDocument.Bookmarks.Exists("Dato") = True Then
    MsgBox "Dato findes"
    ActiveDocument.Bookmarks("Dato").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxDato
End If

If ActiveDocument.Bookmarks.Exists("Jobnr") = True Then
    MsgBox "Jobnr findes"
    ActiveDocument.Bookmarks("Jobnr").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxJobnr
End If

If ActiveDocument.Bookmarks.Exists("Filnavn") = True Then
    MsgBox "Filnavn findes"
    ActiveDocument.Bookmarks("Filnavn").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxFilnavn
End If

If ActiveDocument.Bookmarks.Exists("Sign") = True Then
    MsgBox "Sign findes"
    ActiveDocument.Bookmarks("Sign").Select
    'indsæt data fra dialogboksen
    WordBasic.Insert dlg.boxSign
End If


WordBasic.WW6_EditClear

slut:

End Sub
Avatar billede celal Nybegynder
07. september 2006 - 12:19 #4
supertekst: Kan du ikke vise mig koden for den "letbenet" måde?
Avatar billede celal Nybegynder
07. september 2006 - 12:23 #5
Det skal lige siges at det er en Word skabelon!
Avatar billede celal Nybegynder
07. september 2006 - 12:31 #6
dvs. at det er en "dot" fil
Avatar billede celal Nybegynder
07. september 2006 - 14:29 #7
okay, det det var som supertekst skrev at det var pga. COLON at det ikke virkede.
Mit problem er bare nu at når jeg åbner dokumentet, så skal makro starte med det samme fordi jeg har navngivet makroen "AutoExec", hvilket også er fint nok, men når jeg indtaster data i formen, så få jeg fejlmeddelelsen "kommandoen er ikke tilgængelig, da der ikke er noget åbent dokument" Hvad går galt?
Avatar billede supertekst Ekspert
07. september 2006 - 14:31 #8
Så vidt jeg kan se - har du ikke slettet de to :'er, som jeg nævnte i mit indlæg.
WordBasic.TextBox 10, 62, 300, 18, "boxAdresse1:"
WordBasic.TextBox 10, 82, 300, 18, "boxAdresse2:"

Der kommer kun firmanavnet - da koden derefter går i fejlrutinen! :-)

Den "letbenede" skal jeg nok komme med - men send en mail til: pb@supertekst-it.dk, så får du hele filen incl. userform m.v.
Avatar billede supertekst Ekspert
07. september 2006 - 14:39 #9
Send evt. hele filen til ovennævnte e-mail - så er det noget lettere at se problemerne.
Avatar billede celal Nybegynder
07. september 2006 - 14:57 #10
ok, jeg sender den lige
Avatar billede celal Nybegynder
08. september 2006 - 10:33 #11
supertekst: okay, det virker. Men hvordan kunne du sende mig skabelonen hvor makroen også vare tilknyttet? når jeg sender skabelonen videre til andre kommer makroen ikke med. Gøre du noget specielt?, skal jeg indstille noget i skabelonen??
Avatar billede supertekst Ekspert
08. september 2006 - 11:06 #12
Jeg gør ikke noget specielt - skabelonen indeholder koden - og hvis skabelon-filen  VEDHÆFTES -så skulle der ikke være noget problem.

Du får svaret her....
Avatar billede celal Nybegynder
08. september 2006 - 15:19 #13
ok. Tak for hjælpen
Avatar billede supertekst Ekspert
08. september 2006 - 17:36 #14
Selv tak.
Avatar billede celal Nybegynder
11. september 2006 - 10:09 #15
supertekst: at jeg ikke kan få makroen med når jeg flytter skabelonen fra en computer til en anden, kan det have noget at gøre med at makroen er programmeret i Visual basic under mappen "Normal" Thisdokument? Fiunktionen AutoNew måske ligge et andet sted?
Avatar billede supertekst Ekspert
11. september 2006 - 10:16 #16
Koden bør ligge i selve BrevPapirSkabelonen...

Normal.dot er "normal skabelonen" på den pågældende PC
Avatar billede celal Nybegynder
13. september 2006 - 11:13 #17
ok, har lagt det i projekt på "thisDocument" og det fungere bare. Tak for hjælpen!
Avatar billede supertekst Ekspert
13. september 2006 - 13:49 #18
Fint - & selv tak...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester