Körlevél automatizálás makróval probléma (excel, word)

Körlevél automatizálás makróval probléma (excel, word)
2020-01-09T18:14:12+01:00
2020-01-11T13:41:02+01:00
2022-12-06T06:50:37+01:00
stoly
Sziasztok!

Több excel makrót írtam már életemben, amely az excelen belül csinált kisebb-nagyobb dolgokat, de most egy kicsit ingoványos talajra tévedtem. Egy összetett Excel makróval kísérletezem, amely a következő feladatot kellene végrehajtsa:

Van egy több ezer soros excelünk, amelybe ügyfél értesítési adatok kerülnek feltöltésre. Bizonyos értékek teljesülése esetén már van egy működő makróm, amely az értesítési levél munkalapra átvarázsolja az aktuális rekordokat (a két makrót nem akarom összevonni), na és innentől jön a gondom. A továbbiakban egy kész körlevél sablont kellene megnyitni gombnyomásra (ez működik), betölteni alá az excel fájt (ez is OK), még a körlevélkészítő is elindul, de innentől elakadtam. A wordben használatos parancsokra nem találtam akkora tárházat, mint excelre, így továbbindulni se nagyon tudok.

A sablon egyébként passzol a körlevéllel, ha a lenti makró lefut működik, csak éppen funkciók hiányoznak még.
A működő kód:

Sub Proba() Dim objWord, objDoc Dim fname As String 'word sablon megnyitása Set objWord = CreateObject("Word.Application") objWord.Visible = True Set objDoc = objWord.Documents.Open(Filename:="C:\...\valami.docx", _ ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False) 'excel adatok betöltése (((ez a feladat még működik))) fname = "C:\...\valami.xlsm" objDoc.MailMerge.OpenDataSource Name:=fname, AddToRecentFiles:=False, Revert:=False, _ Connection:="Data Source=" & fname & ";Mode=Read", _ SQLStatement:="SELECT * FROM `Ertesitolevelek$`" 'körlevél betöltés (((ez már nem működik))) With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord .LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord End With .Execute Pause:=False End With 'word sablon bezárása mentés nélkül End Sub
Ahogy írtam is, az egyesítés nem működik már, onnantól hibát jelez a rendszer.
Így ami nincs meg, az a "wordös funkciók neveivel írva" a betöltött körlevélben a befejezés és egyesítés\dokumentumok szerkesztése külön parancs, majd a sablon mentés nélküli bezárása úgy, hogy az egyesített levél külön fájlként nyitva maradjon.

Előre is köszönöm a segítségeteket :)

Esetleg érdekes lehet, Microsoft Office Professional Plus 2013-unk van.
Mutasd a teljes hozzászólást!

  • Nah mi hasonlóból megjöttünk. Inkább html-ben csináljuk immár. Elindult de mindig nyafogott valamiért dátum pénznem stb. Idézöjelek szoveghossz, sorvég volt a kedvence. stb... Ez a körlevél elmegy etikettre de nagyon bonyolult dolgokat bem szabad rábízni.
    Mutasd a teljes hozzászólást!
  • Maga a körlevél "kézzel" nagyon is jól működik, szerencsére ez a része rendben van. Nincsenek benne bonyolultabb formok. 
    Amire következő lépésben szükségünk volna, az magának a már betöltött körlevél "kitöltésének" a makró kódja.
    Mutasd a teljes hozzászólást!
  • először a word az egy másik applicatio, ha excelből, vagy outlookból akarod futatni, akkor a reference-nél meg kell adni, hogy ismerje a wordot, mint applicationt:

    Set References Excel VBA

    A Dim-nel me kell adni, hogy mi miaz:

    Dim objWord, objDoc

    helyett

    Dim objWord As Word.Application
    Dim objDoc As Word.Document

    aztan

    be kell állitani

    Set wrd = GetObject(, "Word.Application")
    set objDoc   ...  
    -nem írom végig, hogy ne vegyem el a lelkesedésedet az alkalazás megalkotásától.   :D
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd