Zoeken en vervangen tekst in Word

Status
Niet open voor verdere reacties.

ThecodeMaster

Gebruiker
Lid geworden
23 jun 2009
Berichten
56
Ik heb een macro in een document.(dus niet in NORMAL.DOT)
Deze macro laat een formulier zien waarop diverse gegevens ingevoerd moeten worden.
Deze gegevens zullen op hun beurt in een nieuw document geplaatst worden.
Dit heb ik gedaan door de variabele velden te benoemen zoals bv %WIJK%

Hieronder de macro.
Code:
Private Sub cmd_Samenstellen_Click()
    Dim VervangCode As String
    '====================
    ' nieuw blad invoegen
    '====================
    strNieuwBestand = strVar(1) & Trim(txt_ProjectNummer.Text) & ".doc"
    Documents.Add
    ' tussentijds bewaren document
    If ActiveDocument.Saved = True Then ActiveDocument.SaveAs strNieuwBestand
    'toevoegen standaard briefing document
    If box_TypeProject.Text = "bouwteam" Then
        Selection.InsertFile FileName:=strVar(2) & "Briefingdoc Bouwteam.doc"
    ElseIf box_TypeProject.Text = "aanbesteding" Then
        Selection.InsertFile FileName:=strVar(2) & "Briefingdoc Aanbesteding.doc"
    End If
    ' nieuw document activeren
    Selection.Document.Activate
    ' wijzigen gegevens
    VervangCode = "wijk " & Trim(Left(box_Wijk.Text, 4))
    ZoekEnVervang "%WIJK%", VervangCode
    VervangCode = Mid(box_Wijk.Text, 5, Len(box_Wijk.Text) - 4)
    ZoekEnVervang "%WIJKNAAM%", VervangCode
    VervangCode = box_Plaats.Text
    ZoekEnVervang "%PLAATS%", VervangCode
End Sub
Code:
Private Sub ZoekEnVervang(ZoekCode As String, VervangCode As String)
    ' zoeken en vervangen van tekst
    Set myRange = ActiveDocument.Content
    myRange.Find.Execute FindText:=ZoekCode, ReplaceWith:=VervangCode, Replace:=wdReplaceAll
End Sub

Zoals je ziet wordt er een nieuw document gemaakt en vervolgens een basisdocument aan toegevoegd.
Vervolgens moeten de variabelen vervangen worden.

Het probleem is dat dit niet werkt en ik zie niet in waarom.

Werner
 
Laatst bewerkt door een moderator:
VBA: een nieuw bestand maken:
Code:
Documents.add

VBA: een bestand in een bestaand bestand invoegen
Code:
  ....InsertFile strVar(2) & "Briefingdoc Bouwteam.doc"

Gebruik documentvariabelen om variabele gegevens in een document te zetten:
menubalk/invoegen/veld/docvariable
{ DOCVARIABLE wijk } (of ctrl-F9; en dan de tekst DOCVARIABLE wijk tussen de vette accolades typen)

Zet er met VBA gegevens in
Code:
activedocument.variables("wijk")="Graafsewijk"
  activedocument.fields.update

Dan is een zoek/vervangoperatie overbodig.

PS. Zoals ik zag wordt er weliswaar een nieuw document gemaakt, maar vervolgens geen nieuw basisdocument toegevoegd (maar ingevoegd)
 
Laatst bewerkt:
snb,

Is snap dat je met invoerveld ook iets kan bereiken, echter ik moet het voor de gebruikers heel simpel houden aagezien ze zelf iets moeten kunnen aanpassen en niet iedereen weet hoe het werkt met invoervelden.
Dus gewoon in de tekst %variabele% plaatsen.
Daarom graag eenm reactie/oplossing voor het probleem zoals ik geschetst had.

Het bestand wordt ingevoegd aangezien er in een andere procedure een keuze gemaakt wordt, in principe is de bestandsnaam dus een variabele.
Of kan ik het moederbestand laden en "opslaan als" gebruiken?

m.vr.gr.
Werner
 
Lees mijn reaktie nog eens nauwkeurig door..
 
PS. Zoals ik zag wordt er weliswaar een nieuw document gemaakt, maar vervolgens geen nieuw basisdocument toegevoegd (maar ingevoegd)

Is er een werkelijk verschil dan tussen toevoegen of invoegen?
Kun je het verschil in code aangeven.

Werner
 
Kijk eens hier, in de eerste 4 regels staat het antwoord.
 
Toch nog een opmerking.

Ik heb ook variabele in een "tekstvak" staan.
Deze wordt niet meegenomen wanneer ik de macro uitvoer.
Moet ik een aanvullende code opgeven?

Werner
 
Laatst bewerkt:
Daar heb je geen last van als je gebruik maakt van documentvariabelen:
veld: {docvariable naam}.
MS heeft wat jij wil al jaren terug als faciliteit ingebouwd. Maak daarvan dan ook gebruik.
 
snb,

Ik gebruik de docvariabelen wel.

Trouwens ik heb nog een ander probleem.
In een basis document heb ik de velden {DOCVARIABLE xxx} ingevuld en opgeslagen.
Echter wanneer ik het document oproep zijn al deze velden verdwenen.
Wanneer ik met de rechtermuis knop op "ander veldweergave" klik komt de tekst {DOCVARIABLE xxx} weer tevoorschijn.

Hoe kan dit.

Werner
 
Laatst bewerkt:
Omdat je met de schakelknop Alt-F9 velden in een Worddocument zichtbaar/onzichtbaar kunt maken.
De velden 'verdwijnen' niet, maar hun zichtbaarheid wisselt.
En wil je goede antwoorden:... plaats dan een voorbeeldbestand hier.
 
Laatst bewerkt:
Alles gaat prima, behalve bij de tekst velden. Waarom hij daar de veld variabelen niet meeneemt is mij compleet onduidelijk.

De onderstaande code gebruik ik om variabelen aan te passen.

Selection.Document.Activate
' variabelen in teksten vervangen door eindwaarden
With ActiveDocument
VervangCode = "Wijk " & Trim(Left(box_Wijk.Text, 4))
.Variables("Wijk") = VervangCode
VervangCode = Mid(box_Wijk.Text, 5, Len(box_Wijk.Text) - 4)
.Variables("wijkNaam") = VervangCode
End With

Wanneer ik op ALT-F9 druk krijg ik overal de veldvariabelen te zien.
Echter bij het tekst veld staat:
{SHAPE \* MERGEFORMAT }
Verder geen variabelen te zien, dus hoogst waarschijnlijk ligt het hieraan.
Maar hoe dit opgelost moet worden is voor mij een ?

Wie heeft er nog een tip.

http://cid-77e969dc2f182d42.skydrive.live.com/self.aspx/ForumVragen/Variabele.doc

Werner
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan