Tekst zoeken mbv macro in Word 2007

Status
Niet open voor verdere reacties.

EdjeVis

Gebruiker
Lid geworden
22 nov 2006
Berichten
99
Goeiemorgen,

Wie kan/wil me helpen met dit "onhebbelijkheidje"? In Excel ben ik ondertussen best leuk bezig met dit soort dingen, maar Word is nieuw voor me.

Ik heb een Word 20007-document van 156 pagina's. Daar heb ik mbv stijlen diverse nivo's koppen aan toegekend. Vervolgens heb ik een inhoudsopgave laten creëeren. Deze inhoudsopgave is echter (door de opbouw van het document) 9 kantjes. Ik heb dus niet altijd zin om eerst helemaal naar een bepaald gedeelte van die inhoudsopgave te scrollen. Ik heb vervolgens alle stukken tekst die als "Kop 1" zijn gekenmerkt, (via Notepad, dus zonder opmaak oid) gekopieerd en die heb ik nog bóven m'n inhoudsopgave gezet. Vervolgens wil ik door ergens in een van die regels te gaan staan en op een command button te klikken, meteen naar die "Kop 1"-tekst in m'n inhoudsopgave.

Als code heb ik (grotendeels simple opgenomen met de recorder) :
Code:
Private Sub CmdZoekTekst_Click()
' ZoekTekst Macro
Dim ZoekTekst As String

Selection.HomeKey Unit:=wdLine 'Naar begin van de betreffende regel
Selection.EndKey Unit:=wdLine, Extend:=wdExtend 'Naar eind van betreffende regel
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend 'Eén karakter terug tbv "Kale tekst"

ZoekTekst = Selection 'Geselecteerde tekst in variabele zetten

'Selection.EndKey Unit:=wdLine
Selection.MoveDown Unit:=wdLine, Count:=1 'Eén regel down om niet in deze regel te komen als zoekresultaat

Selection.Find.ClearFormatting
With Selection.Find
    .Text = ZoekTekst
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.HomeKey Unit:=wdLine 'Naar het begin van de gevonden regel
End Sub

Wat is nou het gekke? Als ik mbv F8 door de code loop, werkt de macro perfect, maar als ik op de command-button in het document klik, springt 'ie steevast naar één bepaalde "Kop 1", waarvan ik de regel niet had gekozen. Het lijkt wel alsof er iets in een stukje geheugen zit of zo, maar dat kan 't eigenlijk niet zijn, want ik heb ondertussen van alles verwijderd, het document afgesloten en weer geopend, pc uit en weer aan gezet. Kortom : ik wordt er gek van......

Bij voorbaat dank voor je moeite!
EdjeVis
 
Laatst bewerkt:
Dit lijkt me voldoende:

Code:
Sub vind()
    c0 = Selection.Paragraphs(1).Range
    Selection.MoveDown wdParagraph, 1
    Selection.Find.Execute c0
End Sub
 
Laatst bewerkt:
Wow! Thanks! Oké, welkom in de VBA-wereld! Dat is íétsje korter :p
Maar.... nu slaat 'ie de inhoudsopgave over en springt meteen naar de gevonden tekst met die opmaak helemaal verderop in het document en ik wil juist dat 'ie de kop in de inhoudsopgave vind.... Heb je daar een oplossing voor?
 
De inhoudsopgave is een veld, geen tekst.
Je kunt er een tekst van maken met veld ontkoppelen (Ctrl-6)
De zin van deze exercitie ontgaat me overigens.
 
Macro in Word 2007 werk niet correct

Hallo,

Ik ben recent overgestapt van Word 2003 naar Word 2007 maar nu werkt een veelvuldig gebruikte macro niet meer.

Ik gebruik diverse documenten waar, op plaatsen van nog in te vullen tekst, het teken ~ staat. In Word 2003 gebruikte ik een macro, middels de toetsencombinatie "ALT ~" om steeds naar deze plaats te springen en dan de betreffende tekst in te voegen.
Deze macro werkt nu echter niet meer correct.
Ik moet de betreffende toetsencombinatie nu namelijk twee maal indrukken (na 1 keer gebeurt er niets) en dan slaat hij steeds eenmaal het teken ~ over.

Weet iemand hoe ik dit probleem op kan lossen ??
Bij voorbaat dank voor uw reactie.

Belker.

De door mij gemaakte macro is de volgende:

Sub Macro1()
'
' Macro1 Macro
'
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
Selection.Find.Execute
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan