Verzendlijst perikelen

Status
Niet open voor verdere reacties.

ReneRijk

Gebruiker
Lid geworden
23 mrt 2008
Berichten
112
Hoi Allemaal,

Ik heb in Excel een lijst met gegevens voor barcode labels.
Deze labels worden geprint in Word doormiddel van verzendlijsten (Stickers)

In Excel wordt doormiddel van een UserForm de gewenste gegevens ingevuld en na een druk op de OK button, slaat Excel de file op in de "mijn gegevensbronnen map) en opent Word met een sjabloon die gevuld wordt met de gegevens uit Excel.

Bij het laatste gaat het mis. Het sjabloon opent netjes maar de gegevens van Excel worden niet ingevuld.
Het vreemde is dat wanneer ik het word sjabloon handmatig opstart de gegevens wel worden ingevuld (Het samenvoegen werkt dus prima) Het sjabloon is zo gemaakt dat wanneer je het opstart, deze de gegevens uitleest vanuit het opgeslagen Excel bestand.(deze staat in de "mijn gegevensbronnen" map)

Maar wanneer ik vanuit Excel Word laat opstarten met het sjabloon, worden de gegevens niet ingelezen.

Iemand een id wat hier fout gaat.
Volgens mij moet het niet uitmaken of Excel nu Word opstart of ik doe het zelf. Toch zit er blijkbaar een verschil in.

Alvast bedankt.....

Peace,
René Rijk :thumb:
 
En dan nu de gebruikte code ......
 
Ja die vraag had ik al verwacht idd.
Ik heb de file niet hier. Morgen op mijn werk zal ik de betreffende code even posten.
Ik weet de code niet zo 1 2 3 uit mijn hoofd.

In ieder geval bedankt voor de snelle reactie.

Peace,
René Rijk. :thumb:
 
Ik heb even een test file gemaakt.

De code ziet er zo uit,

Code:
Private Sub cmdOK_Click()

        Unload UserForm1
        ActiveWorkbook.Save
    file = MyDir & "\test.dotx"

    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    wrdApp.Application.ScreenUpdating = True
    Set wrdDoc = wrdApp.Documents.Open(file)

End Sub


Normaal als ik dus deze sjabloon opstart krijg ik de melding dat er een SQL opdracht uitgevoerd gaat worden en of ik daar mee door wil gaan.

Als ik deze sjabloon start via VBA in Excel dan krijg ik dit niet en opent de sjabloon wel maar de gegevens worden niet ingeladen.

Peace,
René Rijk. :thumb:
 
een sjabloon gebruik je voor de opdracht Documents.add "sjabloon.dot"

In dit geval doe je er het beste aan een Worddocument te openen.
Dat gaat vanuit Excel het eenvoudigst met:

Code:
Private Sub cmdOK_Click()
   Hide
   ActiveWorkbook.Save

   With GetObject(MyDir & "\test.dotx"").mailmerge
      .destination=0
      .execute
   End with
   Unload UserForm1
End Sub
 
Top snb. Dit werkt een heel stuk beter.

Ik ben er bijna. Ik hoop dat je voor de laatste stap ook nog een oplossing weet.
Het werkt prima hoor maar ik zal even uitleggen hoe en wat.

In excel maken wij dus de barcode labels. Daar zal ik verder niet op in gaan.:D
Maar er zijn dus formules en die lopen door van cel 2 tot cel 4000.
Ik vul nu de benodigde gegevens in,

Begin getal:
Aantal:
Divisie:

Vaak is het aantal maar 1000. En door een formule zijn de resterende cellen netjes leeg.
Dus ik heb een (Skip record if Barcode = empty) gemaakt.
Is er een mogelijkheid om nadat je op OK hebt geklikt je de optie krijgt om het aantal records dat samengevoegd moet worden te kunnen kiezen.

Dus als ik 1000 labels heb dat ik dan kan kiezen records 1 t/m 1000.
Normaal als je een mailmerge doet en je hebt je document opgemaakt dan kies je samenvoegen voltooien en dan vraagt Word wat je wilt,
Alles
Huidig record
van/tot

Nu gaat de mailmerge dus alle 4000 records overgooien en dat duurt erg lang en is voor niks want aan het einde zijn er dus maar 1000 over. De resterende 3000 loopt hij nu na maar worden dus overgeslagen aan het eind.

Ik hoop dat je het een beetje kan volgen..

Peace,
René Rijk. :thumb:
 
Je kunt de lege regels eenvoudig verwijderen met

Code:
columns(1).specialcells(xlcelltypeBlanks).entirerow.delete
 
Laatst bewerkt:
Mmmm dat werkt niet echt. :)
Als ik deze code erbij zet, dan haalt deze de hele eerste column weg.
Niet de niet ingevulde cellen. Ik krijg dan een error in Word dat de tabels niet te vinden zijn. Logisch want die zijn dus gedelete door deze line of code.


Peace,
René Rijk. :thumb:
 
Als ik deze code erbij zet, dan haalt deze de hele eerste column weg
Dat gebeurt alleen als er niets in de 1e kolom staat.
Omdat ik geen beeld heb van het bestand waarmee je werkt is het maar gissen.

Code:
usedrange.columns(1).specialcells(xlcelltypeBlanks).entirerow.delete
 
Bedankt voor je geduld. Het is allemaal voor elkaar en het loopt als een zonnetje.

Peace,
René Rijk. :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan