Levél excel mentéskor megadott címekre

Levél excel mentéskor megadott címekre
2010-05-18T15:36:41+02:00
2010-05-18T18:46:32+02:00
2022-11-17T19:50:44+01:00
-coolpet-
Sziasztok!

Meloban egy shared workbookban dolgozik tobb ember, ami napi tobbszori alkalommal van updatelve/bovitve.

Egy olyan excel makrot szeretnek irni, ami a file mentesekor egy emailt kuld a makroban megadott cimre/cimekre.
Nem szeretnek kulon gyorsbillentyut, valamint felugro alerteket sem, csak a hatterben tegye a dolgat.

Talaltam egy ilyen scriptet, csak nem tudom hogy kell meghivni menteskor:

Private Sub kuldes()
Dim ouApp As New Outlook.Application
Dim level As Outlook.MailItem
ouApp.Session.Logon 'Az uj sor!!!
Set level = ouApp.CreateItem(olMailItem)
level.Display
With level
.To = "KádvesÜgyfélNeve@freemailxxxx.xxx"
.Subject = "Árajánlat"
.Importance = olImportanceHigh ' Fontosság
.HTMLBody = "<HTML><H2>Cím</H2><BODY><p><b>A levél üzenete</b></p></body></html>"
End With
End Sub

ezt at tudnatok alakitani ugy, hogy metneskor akar egy ures levelet is kuldjon csak annyival a targyban, hogy XY workbook updated?

Koszi, Coolpet
Mutasd a teljes hozzászólást!
Nem osztott állapotban lépj be a VisualBasicEditor felületre.

A (View > project Explorer) ablakban kattints kettőt a Thisworkbook-ra.

A megjelenő modullap ablak bal felső lenyílójából válaszd ki a workbook-t, majd a jobb oldaliból a beforeSave-t

Oda tedd be a küldő rutint.

Csukd be a VBE-t, és állítsd vissza a megosztottságot.
-----

Bizonyos környezetekben az Outlook levélküldés figyelmeztető üzenetet fog feldobni. (Ezt külső programot telepítve semlegesítheted)
Bizonyos környezetebena levél csak akkor fog elmenni, ha belép az illető az Outlookba.
És persze, ha nem Outlook-ot használ, akkor bukta....

Szerintem (akár a prog.hu-n) keress rá a CDO használatára és inkább annak a kódját tedd be Before_save eljárásba.
Mutasd a teljes hozzászólást!

  • Nagyon franko, Koszi Micu!


    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Dim iMsg As Object
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1 ' CDO Source Defaults
    Set Flds = iConf.Fields
    With Flds
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
    = "Mailserver ip or hostname"
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    .Update
    End With

    strbody = "Here comes the message!"

    With iMsg
    Set .Configuration = iConf
    .To = "somebody@mail.com"
    .CC = ""
    .BCC = ""
    .From = """Excel VB Autoscript"" <excelmakro@valami.hu>"
    .Subject = "Subject!"
    .TextBody = strbody
    .Send
    End With

    End Sub
    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