Word macro voor maken adresetiket

Status
Niet open voor verdere reacties.

lw87

Gebruiker
Lid geworden
17 jan 2002
Berichten
361
etiketten printen met macro

Het lukt me inmiddels om een adres uit een brief op een adresetiket te krijgen: ik plaats het adres in een bladwijzer, de macro zoekt de bladwijzer en selecteert die. Je hebt zo ook aardig wat speelruimte voor adressen met een wisselnd aantal regels.
Dan wordt een nieuw bestand geopend met de layout van een adresetiket en daar wordt het adres met Selection.Paste in gekopieerd. In dit document wordt een wat groter lettertype gebruikt.
Vervolgens wordt het afgedrukt op een specifieke printer. Daarvoor heb ik een aparte printerdefinitie gemaakt met de juiste instellingen voor een etiket.

De macro dit ik nu gebruik heb ik bijgevoegd als etiket.doc

Er rest nu nog 1 probleem:

Het adres staat niet altijd fraai op een etiket:

Handelsonderneming Van
Tintelen
Adreslaan 13
1234 XX Plaats

staat niet zo netjes.
Dat wil ik aanpassen tot

Handelsonderneming
Van Tintelen
Adreslaan 13
1234 XX Plaats

Je kunt dit voorkomen door in de brief tussen Van en Tintelen een harde spatie te plaatsen, maar daar moet je dan wel om denken.

Liever wil ik tijdens het uitvoeren van de macro een wijziging kunnen aanbrengen. Na het kopieëren en voor het printen dus.
Hoe doe je dat?
 

Bijlagen

  • etiket.doc
    21,5 KB · Weergaven: 122
De macro werkt nog altijd niet naar wens:
Ik krijg het niet voor elkaar een "pauze" in te lassen voordat het etiket naar de printer gaat zodat ik eventueel wijzigingen kan invoeren of een foutje kan verbeteren.

WIE WEET RAAD???
 
Wellicht kun je met je macro het afdrukvoorbeeld laten openen en de macro dan stoppen. Dan kun je nog even kijken hoe het er uit gaat zien en zonodig nog wijzigen. Daarna gaat ie met 1 druk op de knop naar de printer.
 
Bedankt Brutus
Het afdrukvoorbeeld laten openen door de macro is geen probleem.
ActiveDocument.PrintPreview
ActiveDocument.ClosePrintPreview
Daarin is echter niets te wijzigen.
Sluit ik het afdrukvoorbeeld, dan kan ik wel wijzigen maar gaat de macro niet meer verder.
Nog geen oplossing dus.
Loes
 
Hoi Loes,

Ik heb even een simpel alternatief gemaakt voor jouw pauze-vraagstuk!

Wellicht is dit ook een optie.

Laat maar weten of je het een wel of niet kunt gebruiken?

See Yah!
P.s, alle instellingen staan nog goed voor jouw pc!
 

Bijlagen

  • etiket_test.zip
    15,3 KB · Weergaven: 59
Beste Joost
Bedankt voor de inspanningen, maar het werkt nog niet goed.

Ik heb de printernaam aangepast tot "Copier etiket" en het sjabloon met etiketopmaak etiket.dot neergezet in de door jou genoemde directory.

Dit is wat er gebeurt.

Ik open jouw bestand en klik op de macroknop: de macro start, het adres wordt naar een nieuw bestand gekopieerd met de afmeting van het etiket (uit etiket.dot dus) maar komt daar zonder opmaak (Arial, 16 pt vet) aan. De laatste regel is wat naar links versprongen.
Er verschijnt een scherm met de vraag of ik het adres wil aanpassen. Het staat over het adres heen, maar ik kan het verschuiven.
Ik kies 'wel aanpassen' en dan wordt Van Tintelen naar de tweede regel verplaatst. Verder kan ik NIETS aanpassen.
Ik klik op De Groeten en kies N bij de vraag of ik het document wil opslaan.
<<Dit heb ik inmiddels aangepast met:
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
Selection.MoveRight Unit:=wdCharacter, Count:=1
ActivePrinter = "zwart/wit printer"
Die laatste regel zorgt er voor dat de standaard printer weer als eerste gebruikt wordt>>
Het adres wordt op een etiket geprint: dat werkt goed, alleen is de opmaak dus knudde (Arial 10 pt en de onderste regel naar links).
Hopelijk is het zo duidelijk.
Toch al vast bedankt.
Loes
 
Laatst bewerkt:
Hoi Loes,

Dat de opmaak van het adres Arial 10 pnt is verbaast mij niks!
Dit is immers de opmaak van het adres in mijn docje! (en die copy/paste je)

Omdat het toch wel duidelijk wordt dat jij alle controle wilt blijven houden over het te printen document, heb ik de volgende oplossing…

Ik neem aan dat het jouw bedoeling is om de macro te plaatsen in Normal.dot (zodat hij altijd beschikbaar is), dit is inderdaad een optie.

Om dit te simuleren heb ik twee testbestandjes gemaakt.

Test.doc moet je even in je wordstart folder stoppen (even bij bestandlocaties in de opties kijken waar die bij jouw staat)

Vervolgens zet je Etiket.dot in jouw sjablonen map.
(dit is allemaal puur voor jouw om te testen hoe het werkt)

Uitgebreide beschrijving vindt je in de bijlage.

Laat maar horen of dit wel een optie is!

Bij mij werkt het bugvrij.....

See Yah!
 

Bijlagen

  • loes w.zip
    15,8 KB · Weergaven: 66
Beste Joost
Jouw oplossing werkt bijna perfect! Ik heb kleine aanpassingen gemaakt en nu is het helemaal naar wens.

Ik had alle acties in 1 macro zitten en kon dan niets meer veranderen als het adres niet naar wens was. De acties splitsen over de 2 sjablonen met elk een macro is een prachtige oplossing.

Wat betreft de etiket-opmaak het volgende:
Het etiket heb ik naar wens opgemaakt: Arial, 16pt, vet, marges op juiste plek, papierformaat aangepast aan het etiket, liggend formaat en dat allemaal opgeslagen in etiket.dot

Dan verder met plakken zonder opmaak: dan wordt de etiket-opmaak gehandhaafd.
Dat gaat in macro 'etiket' met
Selection.PasteSpecial Link:=False, DataType:=wdPasteText, Placement:= _
wdInLine, DisplayAsIcon:=False

In de macro 'doorgaan' heb ik de regel
ActivePrinter = "zwart-wit"
toegevoegd: anders blijft de etiket-printer de standaard.
Raar eigenaardigheidje van Word om vanuit een macro de laatst gebruikte printer tot standaardprinter te benoemen.

Het is nu helemaal naar wens!
Reuze bedankt.
Loes
 
Hoi Loes,

Vondt dit inderdaad zelf ook de beste oplossing voor jouw vraagstuk....zodat jij alle controlle behoud.

Het was ook op zich geen probleem geweest om alles in een macro te laten staan. Deze kun je prima laten pauzeren! Alleen in jou geval was het probleem dat je dingen wilt veranderen. (en die dingen zijn flexibel..dus elke keer anders)

Zoals je weet, moet je na die pauze de macro weer laten starten op een bepaalde focus! (en dan moet je dus precies bepalen wat je gaat doen....heel inflexibel, en er is veel error-handling voor nodig)

Dus al met al geeft dit de flexibiliteit die jij wenst, en werkt supersimpel met de knopjes!

Zou jij mij een plezier willen doen en een voorbeeldje willen zenden van de door jou uiteindelijk gemaakte oplossing? (bij dit soort dingen vindt ik het eindresultaat altijd heel leuk)

Je kunt dit zenden naar: joost@1-2dance.nl

Raar eigenaardigheidje van Word om vanuit een macro de laatst gebruikte printer tot standaardprinter te benoemen.
Nou dat vindt ik niet! Word volgt de gebruiker bij alles wat hij doet, en bewaard in principe gedurende een Wordsesie alles wat een gebruiker doet.(dus zolang Word draait)
Word maakt gebruik van de printer welke in Windows als standaard is gedefineerd, en word bij elke opstart in heel Office als standaard herkent. (totdat je hem in een sessie veranderd, en moet je hem inderdaad weer terugzetten)

Ik vondt het een leuke vraag!

Tot de volgende uitdaging?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan