Posílání emailu z Excelu

Programy pro práci s textem, tabulkami, prezentacemi

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod atilius 1. 7. 2008 15:27

Nevite nekdo, jestli lze posilat email z excelu?

Jde mi o toto: vyplnim radek, dopisu jmeno (email), kliknu na tlacitko a na mail dotycne osoby prijde email, ktery obsahuje tento vyplneny radek.

Diky za pomoc.

M.
atilius
Junior

Odeslat příspěvekod Miroslav Pragl 1. 7. 2008 15:56

Makro (VB) :

ActiveWorkbook.SendMail Recipients:=Range("_mail").Text, Subject:=Range("_subject").Text, ReturnReceipt:=False

_mail, _subject jsou pojmenovane rozsahy aktivnihi seshitu

MP
Miroslav Pragl
Expert
Uživatelský avatar

Odeslat příspěvekod atilius 1. 7. 2008 16:05

Diky!
atilius
Junior

Odeslat příspěvekod c.e.o 1. 7. 2008 17:53

Můžu se zeptat jak by to makro bylo, pokud bych chtěl místo rozsahu hodnot poslat třeba data u kterých by byl dnešní datum? Díky.
c.e.o
Junior

Odeslat příspěvekod Miroslav Pragl 1. 7. 2008 20:35

Nerozumim.

MP
Miroslav Pragl
Expert
Uživatelský avatar

Odeslat příspěvekod atilius 2. 7. 2008 08:03

Tak jsem k tlacitku priradil takto prikaz:

Private Sub CommandButton1_Click()

ActiveWorkbook.SendMail Recipients:=Range("mail@mail.coml").Text, Subject:=Range("A1:I27").Text, ReturnReceipt:=False
End Sub
A hlaska je:

Run-time error 1004

Method Range of object _Worksheet failed
atilius
Junior

Odeslat příspěvekod Miroslav Pragl 2. 7. 2008 08:34

ActiveWorkbook.SendMail Recipients:=Range("mail@mail.coml").Text, Subject:=Range("A1:I27").Text, ReturnReceipt:=False

Opravdu mas bumku ve ktere je adresa pojmenovanou "mail@mail.com"?
Opravdu chces dat do subjectu tabulku A1:I27?

MP
Miroslav Pragl
Expert
Uživatelský avatar

Odeslat příspěvekod atilius 2. 7. 2008 08:59

Aha! :)

Tak jsem to poopravil na:

Private Sub CommandButton1_Click()
ActiveWorkbook.SendMail Recipients:=Range("K3").Text, Subject:=Range("A3:I3").Text, ReturnReceipt:=False

End Sub

Kde v K3 je mail.

Nicmene vysledkem bylo, ze mail odesel (ok), ale prisel mi cely sesit a vubec ne jen radek A3:I3.

A mel bych jeste prosbu.

Bude se jednat o seznam, kde budou postupne pribyvat polozky a k nim emaily. A mne by vyhovavlo, aby to odesilani bylo vic dynamicke. Mam na mysli.

Do K3 vyplnim email1, K4, email2, K5, email1 a postisku tlacitka1 odesle pouze radky pro email1, po stisku tlacitka2 pouze radky pro email2.

Druhy den doplnim K6 pro email2, stisknu tlacitko2 a odejdou opet vsechny radky pouze pro email2.

Diky za pomoc.
atilius
Junior

Odeslat příspěvekod Miroslav Pragl 2. 7. 2008 10:09

neslo by to co chces udelat lepe pres mail merge v Wordu kde Excel bude jako zdroj dat?

MP
Miroslav Pragl
Expert
Uživatelský avatar

Odeslat příspěvekod atilius 2. 7. 2008 10:22

no, tohle melo fungovat jako pridelovani ukolu - tj vyplnim radek s ukolem a zodp osobou a kliknutim ji rovnou poslu ukol na mail. V okamziku, kdy to budu resit pres word, tak to muzu rovnou zkopirovat do Outlooku a poslat ...
atilius
Junior

Odeslat příspěvekod Miroslav Pragl 2. 7. 2008 10:37

eh. tohle v excelu? proc to nedelas pres Tasks / assign .. v outlooku?

MP
Miroslav Pragl
Expert
Uživatelský avatar

Odeslat příspěvekod atilius 2. 7. 2008 11:24

jj, stahuju udaje z dalsich jinych tabulek v excelu....
atilius
Junior

Odeslat příspěvekod Miroslav Pragl 2. 7. 2008 13:35

Zkus neco jako:

Sub SendMailOutlook(aTo, Subject, TextBody, aFrom)

'Create an Outlook object
Dim Outlook 'As New Outlook.Application
Set Outlook = CreateObject("Outlook.Application")

'Create e new message
Dim Message 'As Outlook.MailItem
Set Message = Outlook.CreateItem(olMailItem)
With Message
'You can display the message To debug And see state
'.Display

.Subject = Subject
.Body = TextBody

'Set destination email address
.Recipients.Add (aTo)

'Set sender address If specified.
Const olOriginator = 0
If Len(aFrom) > 0 Then .Recipients.Add(aFrom).Type = olOriginator

'Send the message
.Send
End With
End Sub
Miroslav Pragl
Expert
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků