Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

variable "afdruk samenvoegen" gebruiken in VB

Ger
13 antwoorden
  • In een excel bestand heb ik allerlei gegevens van leerlingen. Deze gegevens wil ik via AFDRUK SAMENVOEGEN in Word koppelen. Dit gaat prima. Nu het volgende. Ik wil pasje gaan maken voor de leerlingen met daarop een pasfoto. Nu kan ik in Word prima de gegevens samenvoegen, alleen het automatisch laten invoegen van die pasfoto gaat niet. Weet iemand een formule, idee of wat anders zodat ik automatisch de juiste foto bij de betreffende leerling krijg.

    De bestandsnaam van de foto is hetzelfde als het leerlingnummer. Voorbeeld: een leerling heeft het leerlingnummer 1234. Dan is de naam van jpg bestand, 1234.jpg

    Het volgende script heb ik in Visual Basic Editor van Word gezet:

    [b:7ba19fc020]i = 1234
    Selection.InlineShapes.AddPicture FileName:="D:\path" & i & ".jpg", _
    LinkToFile:=False, SaveWithDocument:=True[/b:7ba19fc020]

    Echter ik wil dat ipv 1234 een variable komt te staan, die verwijst naar het leerlingnummer. Ik wil dus niet telkens i zelf moeten invullen, maar hoe doe ik dat.
  • Vervang [code:1:fd85a50acd]i = 1234[/code:1:fd85a50acd] door [code:1:fd85a50acd]i = CInt(ActiveDocument.MailMerge.DataSource.DataFields("id").Value)[/code:1:fd85a50acd]
    waar id de naam is van het id-veld.

    Ed
  • Ik heb inderdaad i = 1234 vervangen door je code. Het ID heb ik veranderd in mijn eigen veldnaam. Vervolgens start ik het script en krijg de melding: de macro's in de project zijn uitgeschakeld.

    Opnieuw afsluiten op opstarten helpt niet om het probleem te omzeilen.
  • Vreemd.
    Heb je de macro beveiliging uitstaan? Zit de macro wel aan het merge document gekoppeld? Doet de macro het wel zonder die aanpassing?
    Kun je anders de hele procedure posten? Kan ik het even testen.

    Ed
  • Het volgende heb ik gedaan:

    In Word heb ik het volgende staan:

    [b:f50e330251]Leerling-nummer : «STAMNR»
    Naam : «Achternaam»
    Foto :[/b:f50e330251]

    Achter de foto moet dus een jpg komen te staan. De naam van dit jpg is hetzelfde als het Leerling-nummer. Om dat te realiseren heb ik in Word bij Visual Basic Editor het volgende staan:

    [b:f50e330251]Private Sub Document_New()

    i = CInt(ActiveDocument.MailMerge.DataSource.DataFields("STAMNR").Value)

    Selection.InlineShapes.AddPicture FileName:="L:\Apps\asis2000\foto" & i & ".jpg", _
    LinkToFile:=False, SaveWithDocument:=True

    End Sub[/b:f50e330251]

    Nog even antwoord op je vorige vragen: De beveilingsniveau van de macro staat op hoog (op laag zetten werkt ook niet). De macro zit aan het goede document. En het vorige script dat ik gebruikte, namelijk [b:f50e330251]Private Sub Document_New()

    i = 1234
    Selection.InlineShapes.AddPicture FileName:="L:\Apps\asis2000\foto" & i & ".jpg", _
    LinkToFile:=False, SaveWithDocument:=True

    End Sub[/b:f50e330251] werkte prima, maar voldoet niet aan mijn wensen.
  • Probeer het anders eens met [code:1:c92baa4b02]i = ActiveDocument.Fields(1).Result[/code:1:c92baa4b02]
    1 staat hier dan voor het eerste veld in het document. Als "STAMNR" het eerste veld is, kun je het zo overnemen, anders moet je even tellen. :wink:

    Ed
  • We zijn er bijna…… hoop ik tenminste.

    Het werkt nu inderdaad bijna goed, alleen moet ik op elke samengevoegde pagina het scriptje expliciet starten, door naar de Visual Basic Editor te gaan. Is er ook nog een oplossing hiervoor?

    Wat ik nu dus doe is het volgende. Ik ga de gegevens samenvoegen, vervolgens moet ik dus per pagina (1200 stuks) het scriptje laten uitvoeren.
  • Ik heb een andere oplossing 8)
    Ga met je cursor op de plaats staan waar je de foto wilt invoegen.
    Open de dialoog Veld Invoegen (Invoegen -> Veld), en selecteer in de linkerkolom "Koppelingen en verwijzingen". In de rechterlijst moet je dan kiezen uit: "IncludePicture".
    Onder in het venster staat nu in het tekstvak "INCLUDEPICTURE". Vul daarachter het volgende in, en vergeet hierbij de aanhalingstekens niet:
    "L:\\Apps\\asis2000\\foto\\<<tijdelijk>>.jpg". Er staat nu dus:
    [code:1:869a4c40f7]INCLUDEPICTURE "L:\\Apps\\asis2000\\foto\\<<tijdelijk>>.jpg"[/code:1:869a4c40f7]
    Klik op OK om het veld in te voegen.
    Zorg er nu voor dat je de veldcodes te zien krijgt (Extra -> Opties -> Weergave, veldcode AANvinken).
    Je ziet nu in je document iets staan als:
    [quote:869a4c40f7]
    Leerling-nummer: { MERGEFIELD STAMNR }
    Naam: { MERGEFIELD Achternaam }
    Foto: { INCLUDEPICTURE "L:\\Apps\\asis2000\\foto\\<<tijdelijk>>.jpg" \* MERGEFORMAT }
    [/quote:869a4c40f7]
    Selecteer nu { MERGEFIELD STAMNR } en selecteer <<tijdelijk>> in het onderste veld. Plak het veld STAMNR op de plaats van <<tijdelijk>>. Je hebt nu als het goed is:
    [quote:869a4c40f7]
    Leerling-nummer: { MERGEFIELD STAMNR }
    Naam: { MERGEFIELD Achternaam }
    Foto: { INCLUDEPICTURE "L:\\Apps\\asis2000\\foto\\{ MERGEFIELD STAMNR }.jpg" \* MERGEFORMAT }
    [/quote:869a4c40f7]
    Verberg de veldcodes weer (Extra -> Opties -> Weergave) en voeg het document samen. Als dat klaar is, moet je nog 1 ding doen.
    Selecteer het hele document (Ctrl-A), en druk op F9.
    Voila! Zonder VBA, en met hulp van deze site


    Ed
  • Merci!!! Dit werkt echt goed!
  • Graag gedaan 8)

    Ed
  • Dit was voor mij zeer leerzaam maar het is mij nog niet gelukt.

    Ik probeer een persoonlijke afbeelding op de achtergrond van een word-document weer te geven maar op de één of andere manier lukt het niet.

    Wat doe ik niet goed?

    De basis is een excelbestand

    [img:e4866e53fd]http://www.driessen-suzuki.nl/upload/driessen-suzuki/Image//incorrect.jpg[/img:e4866e53fd]

    [img:e4866e53fd]http://www.driessen-suzuki.nl/upload/driessen-suzuki/Image//incorrect1.jpg[/img:e4866e53fd]

    [img:e4866e53fd]http://www.driessen-suzuki.nl/upload/driessen-suzuki/Image//incorrect2.jpg[/img:e4866e53fd]

    [img:e4866e53fd]http://www.driessen-suzuki.nl/upload/driessen-suzuki/Image//incorrect3.jpg[/img:e4866e53fd]
    De afbeelding is een auto en ik zou graag de auto en het kenteken mergen.. Wie helpt mij uit de brand?
  • Iemand een idee of tip?
  • zeker een tip .
    koop een leesbril .
    en zie dat het topic 10 jaar oud is .

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.