Stránka 1 z 1

Makro

Napsal: 11 dub 2014 21:18
od p.bublik
Ahoj,
chtěl bych poradit. Mám níže uvedené makro v sešitě. Které odesílá prostřednictví Outloku email na určitou adresu označená políčka. Jenže do samotného emailu swe nevloží podpis, který mam nastavený v Outlooku. Nevíte kde nebo jak toto nastavit? Předem písu že automaticky podpisy do nových emailů který vytvořím v Outlooku jsou vkládany.


Makro:
Sub odesli_test_test()

ActiveSheet.Range("C8:I34").Select

' Show the envelope on the ActiveWorkbook.
ActiveWorkbook.EnvelopeVisible = False


With ActiveSheet.MailEnvelope
.Item.To = "xy@xy.cz"
.Item.CC = ""
.Item.Subject = "test"
.Item.Send

End With

Range("E20:H30").Select
Selection.ClearContents

ActiveWorkbook.Save

End Sub

Re: Makro

Napsal: 11 dub 2014 21:27
od Azuzula
Ahoj, mrkni třeba sem: http://www.rondebruin.nl/win/s1/outlook/signature.htm

Nebo jednoduše můžeš podpis doplnit přímo do makra nebo do dalšího řádku v excelu ;)

Re: Makro

Napsal: 11 dub 2014 21:28
od cmuch
Nemám outlook, jen jsem něco našel.

Kód: Vybrat vše

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

 strbody = "text emailu"

 On Error Resume Next
 With OutMail
 .Display
 .To = ""
 .Subject = "předmět"
 .HTMLBody = strbody & "<br>" & .HTMLBody
 .Display
 End With

 On Error GoTo 0

 Set OutMail = Nothing
 Set OutApp = Nothing

Re: Makro

Napsal: 11 dub 2014 21:36
od p.bublik
Podpis doplnit do Makra nemohu, protože to bude využívat více lidí a každý má jiný podpis.

Re: Makro

Napsal: 12 dub 2014 10:49
od p.bublik
Mám tady toto makro, ale prostě mail to odešle v textu je jen true a podpis, ale už to nevloží ty potřebné políčka do toho mailu jako předchízející moje verze, ale bez podpisu


Sub Mail_Outlook_With_Signature_Html_1()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = ActiveSheet.Range("D9:I33").Select
ActiveWorkbook.EnvelopeVisible = False
On Error Resume Next

With OutMail
.Display
.To = "xy@xy.xy"
.CC = ""
.Subject = "test"
.HTMLBody = strbody & "<br>" & .HTMLBody
.Send
End With

Range("E20:H29").Select
Selection.ClearContents
ActiveWorkbook.Save

On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Re: Makro

Napsal: 12 dub 2014 19:14
od Azuzula
Podle mého je chyba v tom .select na konci viz code.Outlook nepoužívám, tak to nevyzkouším, ale smazala bych to .select a měly by se vkládat buňky do těla mailu.

Kód: Vybrat vše

strbody = ActiveSheet.Range("D9:I33").Select

Re: Makro

Napsal: 13 dub 2014 19:22
od p.bublik
Když odeberu .select tak to hodí chybu na řídku 13 a nic to neudělá.
Na řádku 13 je právě

strbody = ActiveSheet.Range("D9:I33")

Re: Makro

Napsal: 13 dub 2014 20:22
od Azuzula
pardon, unikla mi ještě deklarace proměnné strbody
přepsat z Dim strbody as string na Dim strbody as Variant pak by to mohlo jít.

Re: Makro

Napsal: 13 dub 2014 21:31
od p.bublik
Bohužel ani to nejde, odešle se jen email s podpisem :(

Sub Mail_Outlook_With_Signature_Html_1()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As Variant

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = ActiveSheet.Range("D9:I33")
ActiveWorkbook.EnvelopeVisible = False
On Error Resume Next

With OutMail
.Display
.To = "xy@xy.yx"
.CC = ""
.Subject = "test"
.HTMLBody = strbody & "<br>" & .HTMLBody
.Send
End With

Range("E20:H29").Select
Selection.ClearContents
ActiveWorkbook.Save

On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Re: Makro

Napsal: 14 dub 2014 09:48
od Azuzula
Aha, no... tak třeba takhle:

Kód: Vybrat vše

Sub Mail_Outlook_With_Signature_Html_1()
Dim OutApp As Object
Dim OutMail As Object
Dim strBody As String
Dim rngBody As Range
Dim rngBunka As Range

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

'zpracování těla e-mailu
Set rngBody = ActiveSheet.Range("D9:I33")

For Each rngBunka In rngOblast
    strBody = strBody &  rngBunka
Next

ActiveWorkbook.EnvelopeVisible = False
On Error Resume Next

With OutMail
.Display
.To = "xy@xy.yx"
.CC = ""
.Subject = "test"
.HTMLBody = strBody & "<br>" & .HTMLBody
.Send
End With

Range("E20:H29").Select
Selection.ClearContents
ActiveWorkbook.Save

On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Předpoklad je, že v buňkách s tělem e-mailu máš nějaký html kód a tím pádem nesejde na formátování buněk v excelu. Pokud potřebuješ formátování přenést do e-mailu tak jak je v excelu, tak to nejspíš budeme muset vyřešit jiným způsobem.