Split bookmark in Word

Status
Niet open voor verdere reacties.

spaarie

Terugkerende gebruiker
Lid geworden
11 jul 2011
Berichten
1.784
Helpers,

Ben niet erg bedreven in VBA Word vandaar de vraag. Is het mogelijk om een bookmark, indien een punt aanwezig, te splitten? En de tekst te tonen ná de punt.
Dit moet overigens ook gebeuren nadat me bookmarks gevuld zijn, is dat ook nog te definiëren ofzo?

Het probleem zit hem in de relatienamen van een Word sjabloon. We hebben geen aparte aanhef tekst of iets dergelijks dus in onze sjablonen staat er nu: "Geachte heer/mevrouw V. van Gogh".

Iemand die me kan helpen? Bedankt bij voorbaat.
 
Kan me zo niet veel voorstellen bij je bedoeling, maar heb je al naar de Split functie gekeken? Bijvoorbeeld:
aVar = Split("Geachte heer/mevrouw V. van Gogh", ".")

Dit levert een Array variabele op met in aVar(0) de tekst "Geachte heer/mevrouw V." en in aVar(1) de tekst (" van Gogh")
 
Laatst bewerkt:
Maar hoe kom je dan aan die tekst? Moet toch ergens uit een veld komen? Wat staat daar dan in?
 
@ octa: Het is een Word sjabloon welke gevuld wordt vanuit mijn ERP pakket.
@ edmoor: De functie ken ik, maar weet niet hoe ik hem moet toepassen op een bookmark nádat deze gevuld is.
 
Vergeet die onhandige bladwijzers en gebruik een documentvariabele. (invoegen / velden / Docvariable)
 
De functie ken ik, maar weet niet hoe ik hem moet toepassen op een bookmark nádat deze gevuld is.
DocVariabelen zijn prima te gebruiken als je output uit je systeem daarmee overweg kan. Als je ze niet kunt vullen vanuit je ERP, wordt het nog lastig om die te gebruiken. Wat betreft je bookmarks: het hangt er maar helemaal vanaf hoe je die bookmark nu gebruikt. Als ze als plaatsmarkering in je document staan en je ERP ze gebruikt om door het document te manoeuvreren, dan werkt dat anders dan dat de geplaatste tekst in de bookmark staat. In het tweede geval kun je dan de inhoud uit de bookmark halen en bewerken (met Split), in het eerste geval is je variabele dan leeg. Je zult dan dus op een andere manier de variabele moeten vullen, bijvoorbeeld door de complete alinea in te lezen en te splitsen.
Dus graag wat meer toelichting!
 
@snb: daar kan ik mijn sjabloon toch niet mee vullen vanuit mijn ERP pakket?

@octa: Ik maak bladwijzers aan in Word en geef deze een naam. Die naam moet ik mijn ERP pakket bij mijn gewenste veldje plaatsen zodat deze matchen en mijn ERP pakket weet in welke bladwijzer de inhoud van het welk veld geplaatst moet worden.
Nu wordt in het briefhoofd d.m.v. een bladwijzer de firma naam geplaatst en/of de naam van een particulier. Wanneer de naam een punt bevat is het een particulier en wil ik de tekst welke achter de punt staat in mijn aanhef hebben.

Bijvoorbeeld in mijn kop (bladwijzer) komt de naam V. van Gogh. Verder in de brief staat 'geachte heer/mevrouw,' en dan wil ik nu de inhoud achter de punt. Anders niks...

Is dit te realiseren?

Dit probeer ik te realiseren in Word
Code:
Sub Spaarie()
    If InStr(bookmarks("naam").Range, ".") > 0 Then
        bookmarks("aanhef").Range split(bookmarks("naam").range(1)
    End If
End Sub
 
Laatst bewerkt:
Je schrijft een heleboel, maar helaas geen antwoord op mijn vraag. Probeer nog eens :).
 
@snb: daar kan ik mijn sjabloon toch niet mee vullen vanuit mijn ERP pakket?

Juist wel:

vanuit het ERP-pakket:
Code:
sn=array("tekst1","V. van Gogh","tekst3",....,"tekt100")
for j=1 to 100
  activedocument.variables("nummer_" & j)= iif(instr(sn(j),"."),split(sn(j),".")(1),sn(j))
next
activedocument.fields.update
 
Ik mag toch hopen dat niet elke willekeurige gebruiker in een ERP pakket in de code mag wroeten :). Ik vind de aanpak van TS ook best bruikbaar want een Word document aanpassen met bookmarks is niet zo moeilijk, en je hoeft er niet voor in een lastig pakket te grutten.
 
Het gebruik van bladwijzers is even ingewikkled als van documentvariabelen. De laatste zijn robuuster.
 
Daar gaat het in dit geval niet om; ik zou niet iedereen in mijn ERP willen zien rotzooien, terwijl ze van mij best hun Word documenten mogen aanpassen. Ik heb nooit problemen gehad met Bookmarks (ook niet met DocVariabelen, maar daar gaat het nu niet om), dus waarom niet?.
 
@snb: Ik kan toch niet in de broncode van mijn erp pakket. Dat zou toch kolder zijn! Om een kleine impressie te geven hoe ik mijn bookmarks definieer in mijn erp pakket.
Zoals je ziet moet ik a.d.h.v. tabelvelden aangeven bij welke bladwijzer deze horen. Nu wil ik bladwijzer toevoegen of een documentvariabele die de inhoud van een andere bladwijzer 'split'.

Kan dit gerealiseerd worden.
 

Bijlagen

  • impressie_erp.JPG
    impressie_erp.JPG
    23,8 KB · Weergaven: 43
Wat ik tot nu toe heb, maar niet werkend krijg...
Code:
Sub test()
    ActiveDocument.Variables("aanhef") = IIf(InStr(ActiveDocument.Bookmarks("naam"), "."), Split(ActiveDocument.Bookmarks("naam"), ".")(1), ActiveDocument.Bookmarks("naam"))
End Sub

Overigens weet ik ook niet hoe ik de module 'automatisch' moet aanroepen in Word... *zucht*
 
Dit gaat toch niet over 'broncode' maar over een exportfunktie, waarbij het pakket gewoon gebruik maakt van VBA.
 

Bijlagen

  • __spaarie voorbeeld.zip
    16,4 KB · Weergaven: 18
Laatst bewerkt:
@snb: Ik dacht al, maar goed. Je verzonden bijlage is helemaal top. Heb het kunnen aanpassen, maar hoe kan ik dit 'automatisch' laten vullen/uitvoeren?
Op document_open zal de bladwijzer denk ik nog niet gevuld zijn en heeft het geen zin... andere opties?
 
Het kan in de document_close gebeurtenis gezet worden.
 
Vermoedelijk is dat ook geen optie aangezien het document eerst geprint of gemaild gaat worden.
 
Wie gaat dat doen dan ?

Als het document meteen gevuld wordt door het ERP-systeem na opening van het document kun je een vertraagde (bijv. na 5 seconden) macro starten met:

Code:
Private Sub Document_Open()
    Application.OnTime DateAdd("s", 5, Now), "M_snb"
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan