Toon posts:

[Word 2000] Macro geeft problemen bij datum

Pagina: 1
Acties:
  • 173 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb wat ruzie met een word macro waarin ik de huidige datum van vandaag wil laten zien.
Ik gebruik hiervoor visual basic die standaard bij office is geleverd. Dit script is gemaakt door een bedrijf dat al jaren niet meer bestaat. Het probleem is dus ook dat ik niet kan achterhalen wat sommige dingen in deze source code betekenen.

Als ik de sjabloon aanklik krijg ik een venster waar ik gegevens in kan voeren die dan automatisch in het word document worden gezet. Als ik vanuit dat venster dan op ok klik geeft hij een foutprobleem met de melding. fout 5101 tijdens uitvoeren. Deze bladwijzer bestaat niet.


Mijn source code over de datum is alsvolgt
Dit staat bovenaan in de code.

code:
1
2
WordBasic.Text 10, 20, 100, 13, "Datum:"
    WordBasic.Text 70, 20, 100, 13, WordBasic.[Date$]()


Dit staat midden in de code.
code:
1
2
3
4
Selection.GoTo What:=wdGoToBookmark, Name:="Datum"
Selection.InsertDateTime DateTimeFormat:="d MMMM yyyy", InsertAsField:=False
Selection.GoTo What:=wdGoToBookmark, Name:="TAV"
    If dlg.TAV$ = "" Then GoTo Wissen Else GoTo Einde


Indien nodig kan ik de complete sourcecode plaatsen.
Ik heb het nodige zoekwerk al op google gedaan maar kan er niet veel wijzer uit worden.
Waarschijnlijk kijk ik er stijl overheen.

Verwijderd

je geeft toch zelf duidelijk de fout aan : "Deze bladwijzer bestaat niet". dit heeft dus niets met de prehistorische wordbasic code te maken.
gewoon even kijken of de bladwijzers Datum & TAV bestaan en op de goede plaats staan, zoniet opnieuw aanmaken.

  • chromeeh
  • Registratie: Oktober 2001
  • Laatst online: 22-08 13:37

chromeeh

the Gnome

Rutger is een collega van me, hij houd zich bezig met die macro's maar goed, ik heb er ook ff naar gekeken, op het moment dat we iets gaan veranderen aan het TAV / Datum veld dan werkt heel het script niet meer....

"Some day, I hope to find the nuggets on a chicken."


Verwijderd

chromeeh schreef op maandag 03 oktober 2005 @ 09:02:... op het moment dat we iets gaan veranderen aan het TAV / Datum veld dan werkt heel het script niet meer....
maar dan gaat het niet meer over de fout die de TS heeft aangegeven veronderstel ik. voor alle duidelijkheid : open eens het sjabloon en kijk eens of de gebruikte bladwijzers wel degelijk bestaan. voor de rest zorgt de code ervoor dat bij eerste wijziging de bladwijzer direct verdwijnt, dus als je daar later nog eens naar verwijst, zal deze eerst opnieuw aangemaakt moeten worden.

Verwijderd

Topicstarter
dit is de originele tekst. heb geen idee meer wat te doen. heb alles al nagekeken maar zie gewoon wat over het hoofd

code:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Public Sub MAIN()
Dim Button
Dim SearchText$
Dim Readposition
Dim A$
Dim lengte
Dim space_
Dim Naam$
Dim TAV$
Dim ORef$
Dim uref$
Dim Adres$
Dim Wpl$
Dim mark$
Dim Wissen
Again:
' Openen van het dialoog venster
WordBasic.BeginDialog 355, 400, " Fax "
    WordBasic.Text 10, 20, 100, 13, "Datum:"
    WordBasic.Text 70, 20, 100, 13, WordBasic.[Date$]()
    WordBasic.Text 1, 62, 350, 13, "Type Naam geadresseerde: *"
    WordBasic.TextBox 21, 75, 285, 18, "Naam$"
    WordBasic.Text 1, 102, 280, 13, "Type T.a.v.: "
    WordBasic.TextBox 21, 115, 285, 18, "TAV$"
    WordBasic.Text 1, 142, 350, 13, "Type Fax nummer:"
    WordBasic.TextBox 21, 155, 285, 18, "Fax$"
    WordBasic.Text 1, 182, 280, 13, "Type Cc: "
    WordBasic.TextBox 21, 195, 285, 18, "CC$"
    WordBasic.Text 1, 222, 350, 13, "Type Van: "
    WordBasic.TextBox 21, 235, 285, 18, "Van$"
    WordBasic.Text 1, 262, 350, 13, "Type Referentie:"
    WordBasic.TextBox 21, 275, 285, 18, "Ref$"
    WordBasic.Text 1, 302, 160, 13, "Type Betreft:"
    WordBasic.TextBox 21, 315, 285, 18, "Betreft$"
    WordBasic.Text 1, 342, 160, 13, "Type Pagina's:"
    WordBasic.TextBox 21, 355, 285, 18, "Pag$"
 
    WordBasic.OKButton 240, 7, 88, 21
    WordBasic.CancelButton 240, 31, 88, 21
   

WordBasic.EndDialog
Dim dlg As Object: Set dlg = WordBasic.CurValues.UserDialog
Button = WordBasic.Dialog.UserDialog(dlg)
If Button = 0 Then GoTo Enddocument

' RF.INI wordt gevuld met de ingevoerde gegevens
Verder:
WordBasic.SetPrivateProfileString "Brief", "Van", dlg.Van$, "RF.INI"

' invullen van de formuliervelden in het standaard document
WordBasic.SetFormresult "Naam", dlg.Naam$
WordBasic.SetFormresult "TAV", dlg.TAV$
WordBasic.SetFormresult "Fax", dlg.Fax$
WordBasic.SetFormresult "CC", dlg.CC$
WordBasic.SetFormresult "Van", dlg.Van$
WordBasic.SetFormresult "Ref", dlg.Ref$
WordBasic.SetFormresult "Betreft", dlg.Betreft$
WordBasic.SetFormresult "Pag", dlg.Pag$
Selection.GoTo What:=wdGoToBookmark, Name:="Datum"
Selection.InsertDateTime DateTimeFormat:="d MMMM yyyy", InsertAsField:=False
Selection.GoTo What:=wdGoToBookmark, Name:="TAV"
    If dlg.TAV$ = "" Then GoTo Wissen Else GoTo Einde
       
    
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
Wissen:
    Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.Delete
    Selection.Delete
    
    
Einde:
    Selection.EndKey Unit:=wdStory
    GoTo EndMacro
Enddocument:
WordBasic.FileCloseALL
EndMacro:
End Sub


iemand mischien een goede oplossing??

[ Voor 8% gewijzigd door Verwijderd op 07-10-2005 09:05 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Een paar opmerkingen:
- het grootste deel van je macro bestaat uit wordbasic. Dat is al sinds Word95 verlaten voor VBA. Het is sowieso een goed idee om je te verdiepen in VBA en de macro opnieuw te maken in VBA. Uiteindelijk zal dat minder werk zijn dan dit ding te blijven onderhouden.

- Heretic is duidelijk genoeg, dacht ik. Open het document en controleer of de bladwijzer bestaat. Bijvoorbeeld, ga naar, bladwijzer, en kijk of je naar de bladwijzer "datum"kunt gaan.
Jij hebt het over een veld wijzigen, en dat is toch echt wat anders.

- Leer debuggen. Zet een onderbrekingspunt bovenin de macro en loop met f8 stap voor stap door de macro heen en kijk op welke regel het precies mis gaat. Schakel eventueel probleemregels uit door er een ' voor te zetten en probeer zo het probleem te isoleren. Een lap code hier dumpen en vragen wat er mis is werkt niet: ten eerste zijn we daar niet voor en ten tweede hebben we het document en jouw machine niet.

offtopic:
mmm, ik geloof de basis van het vba debuggen niet zou misstaan in de faq ;)

[ Voor 8% gewijzigd door Lustucru op 07-10-2005 09:35 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
ok thnx

  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Niesje schreef op vrijdag 07 oktober 2005 @ 09:34:
offtopic:
mmm, ik geloof de basis van het vba debuggen niet zou misstaan in de faq ;)
offtopic:
Knock yourself out :P

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters

Pagina: 1