[Word] Nieuwe waarde bookmark wordt voor oude gezet

Status
Niet open voor verdere reacties.

Jarcol

Gebruiker
Lid geworden
23 aug 2007
Berichten
18
Hallo allemaal,

Ik hou in mn document een versie bij, welke wordt weergegeven in een voettekst in een bookmark (bladwijzer).

Als ik de waarde van de versie ophoog komt het nieuwe versie nummer voor het oude te staan.. dat is alleen niet echt de bedoeling!

Weet iemand hoe ik dit kan verhelpen? Bij het 'update-en' van de tijd ofzo gaat het wel goed!

Code:
NieuwVolgno = Format(TopVolgNo + 1, "000")

ActiveDocument.Bookmarks("versie").Range.Text = NieuwVolgno
ActiveDocument.Bookmarks("versie2").Range.Text = NieuwVolgno

Alvast bedankt voor t helpen!
 
Als TopVolgNo en NieuwVolgno gewoon integers zijn, dan zie ik geen oorzaak voor je twee versienummers achter elkaar...

Waarvoor dient ActiveDocument.Bookmarks("versie2").Range.Text? Als je zowel "versie" als "versie2" toont, dan lijkt het probleem (en de oorzaak) me duidelijk... ;)

Edit:
Wat is de code voor het ophalen van TopVolgNo? En hoe plaats je de volgnummers in je document? (code graag!) :)
 
Laatst bewerkt:
Als TopVolgNo en NieuwVolgno gewoon integers zijn, dan zie ik geen oorzaak voor je twee versienummers achter elkaar...

Waarvoor dient ActiveDocument.Bookmarks("versie2").Range.Text? Als je zowel "versie" als "versie2" toont, dan lijkt het probleem (en de oorzaak) me duidelijk... ;)

Edit:
Wat is de code voor het ophalen van TopVolgNo? En hoe plaats je de volgnummers in je document? (code graag!) :)

Allereerst bedankt voor het reageren!

TopVolgNo komt uit een loopje waarin wordt bepaald wat een hoogste getal is.. ik wil je de code graag geven maar dat ligt op mn werk en heb ik dus niet bij de hand...

ik wil het versienummer op 2 plaatsen in het word document weer geven, 1x in een header (versie) en 1x bij de paginanummer in de footer (versie2).. Deze plaats ik dmv bookmarks.. aangezien je niet 1 bookmark op 2 plekken in het document kan zetten heb ik dus een versie en een versie 2 aangemaakt..

Als je toch nog code wilt zal ik je deze morgen geven!
Ik hoop dat je een oplossing weet! Bedankt iig!
 
De code lijkt me handig. Het deel van de code dat je al gepost hebt, geeft m.i. namelijk geen aanleiding tot 2x een versienummer...
 
De code lijkt me handig. Het deel van de code dat je al gepost hebt, geeft m.i. namelijk geen aanleiding tot 2x een versienummer...

Prima, komt ie:
Code:
Dim Bestand As String

TopVolgNo = 0
'Bepaal bestandsnaam zonder volgnr en extensie
posn = InStr(ActiveDocument.Name, "`")
  If posn <> 0 Then
     bnaam = Left(ActiveDocument.Name, posn - 1)
  End If

Bestand = Dir(ActiveDocument.Path & "\" & bnaam & "`*.doc")

Do While Bestand <> ""
  VolgNo = Mid(Bestand, InStr(1, Bestand, "`") + 1, 3)
  If IsNumeric(VolgNo) Then
    If VolgNo > TopVolgNo Then
        TopVolgNo = CInt(VolgNo)
    End If
    Bestand = Dir
  End If
Loop

NieuwVolgno = Format(TopVolgNo + 1, "000")
fname = bnaam & "`" & NieuwVolgno & ".doc"

ActiveDocument.Bookmarks("versie").Range.Text = NieuwVolgno
ActiveDocument.Bookmarks("versie2").Range.Text = NieuwVolgno

Als ik in een msgbox NieuwVolgno laat weergeven dan komt ook het goede versienummer te voorschijn!

Ik hoop dat je hier wat mee kan!

Thnx!
 
Ik denk dat je als bookmark een locatie hebt gekozen vlak voor het versienummer (i.p.v. het versienummer zelf). Hierdoor wordt een nieuw versienummer voor het oude geplaatst.

Beter is dat je het versienummer selecteert en dan een bookmark aanmaakt. Nu zal bij het plaatsen van een nieuw versienummer echter niet alleen het oude versienummer overschreven worden, maar ook zal de bookmark verdwijnen (de verwijzing was naar het oude versienummer en dat bestaat immers niet meer...). De oplossing is dan dat je de bookmark opnieuw maakt:
Code:
    Dim Bestand
    Dim VolgNo As Long
    Dim TopVolgNo As Long
    Dim posn As Long
    Dim bnaam As String
    Dim fname As String
    Dim NieuwVolgno As String
    Dim myRange As Range
    
    TopVolgNo = 0
    'Bepaal bestandsnaam zonder volgnr en extensie
    posn = InStr(ActiveDocument.Name, "`")
      If posn <> 0 Then
         bnaam = Left(ActiveDocument.Name, posn - 1)
      End If
    
    Bestand = Dir(ActiveDocument.Path & "\" & bnaam & "`*.doc")
    
    Do While Bestand <> ""
      VolgNo = Mid(Bestand, InStr(1, Bestand, "`") + 1, 3)
      If IsNumeric(VolgNo) Then
        If VolgNo > TopVolgNo Then
            TopVolgNo = CInt(VolgNo)
        End If
        Bestand = Dir
      End If
    Loop
    
    NieuwVolgno = Format(TopVolgNo + 1, "000")
    fname = bnaam & "`" & NieuwVolgno & ".doc"
    
    Set myRange = ActiveDocument.Bookmarks("versie").Range
    ActiveDocument.Bookmarks("versie").Range.Text = NieuwVolgno
    ActiveDocument.Bookmarks.Add "versie", myRange
    ActiveDocument.Bookmarks("versie").End = ActiveDocument.Bookmarks("versie").Start + 3
    
    Set myRange = ActiveDocument.Bookmarks("versie2").Range
    ActiveDocument.Bookmarks("versie2").Range.Text = NieuwVolgno
    ActiveDocument.Bookmarks.Add "versie2", myRange
    ActiveDocument.Bookmarks("versie2").End = ActiveDocument.Bookmarks("versie2").Start + 3

Lukt het zo wel? Succes in ieder geval!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan