Stránka 1 z 2
VBA Excel - odesílání html mailu
Napsal: 20 říj 2010 11:44
od Branscombe
Ahoj všem,
v příloze je tabulka značek aut, které se mi spojí vzorcem do jedné buňky ("D12"). Potřebuji makrem odeslat e-mail ve formátu "html", text z této buňky ("D12"), ale nedaří se mi to a text je vždy sloučen za sebou a nikoliv v řádkách pod sebou ... Pomůžete ??
Re: VBA Excel - odesílání html mailu
Napsal: 20 říj 2010 21:52
od navstevnik
Jako obvykle, nic moc informaci, spise zadne.
Pozadovane bunky prekopiruj do noveho jednolistoveho sesitu, exportuj do Html: Ulozit jako>vyber typ souboru Html, adresar pro ulozeni, nazev>OK. Jinak si na netu najdi procedury pro: excel vba sheet to html
Pro odeslani souboru jako prilohu mailem (pokud jiz nemas napsanou proceduru) si na netu najdi proceduru podle toho, co pouzivas pro odeslani posty: Outlook, Thunderbird,....
Zrejme umis prostrednictvim VBA prevest do Html obsah bunky. Vynech slouceni do jedne bunky a ve smycce preveded jen bunky s pozadovanym obsahem (<>vbNullString)
Re: VBA Excel - odesílání html mailu
Napsal: 21 říj 2010 08:21
od Branscombe
Upřesnění:
mám soubor excelu v příloze a potřebuji odeslat automaticky e-mail který by měl být ve formátu html a měl vypadat jako obrázek v příloze
Re: VBA Excel - odesílání html mailu
Napsal: 21 říj 2010 09:08
od navstevnik
Zde je odkaz na priklady reseni:
http://www.rondebruin.nl/sendmail.htmVyber si: SendMail method - Range or Selection,
Radek: Set Source = Range("A1:K50").SpecialCells(xlCellTypeVisible)
zmen (neprazdne bunky obsahujici text): Set Source = Range("a1:k50").SpecialCells(xlCellTypeConstants, xlTextValues)
a dalsi radky pripadne uprav
Re: VBA Excel - odesílání html mailu
Napsal: 21 říj 2010 10:19
od Branscombe
Díky, ale to je absolutně něco jiného. Potřebuji poslat e-mail ve formátu html a nikoliv excel sheet jako přílohu mailu ...
Umím odeslat e-mail ve formátu html, ale nevložím dovnitř žádnou podmínku typu "odešli pouze neprázdné řádky" a když mám sloučené řádky v jedné buňce a odřádkované, tak mi je tam vloží neodřádkované ... viz soubor v příloze včetně makra
Teď už je snad uplně jasné co potřebuji ...
Re: VBA Excel - odesílání html mailu
Napsal: 21 říj 2010 11:06
od navstevnik
Nemam nainstalovany Outlook, nemohu overit.:
Set D12 = Worksheets("List1").Range("a1:a10").SpecialCells(xlCellTypeConstants, xlTextValues)
Re: VBA Excel - odesílání html mailu
Napsal: 21 říj 2010 11:56
od Branscombe
Bohužel nefunguje, ale vypadalo to nadějně ... :-/
Ale stejně bych to raděj řešil přes tu slučovanou buňku, tam můžu sloučit více sloupců atd ...
Re: VBA Excel - odesílání html mailu
Napsal: 21 říj 2010 21:53
od navstevnik
zpravu v pozadovanem tvaru vygeneruje:
Kód: Vybrat vše
Option Explicit
Sub SendMail()
Dim ol As Object, myItem As Object
Dim adresat As String, vec As String, telo As String, SBlk As Range, SCll As Range
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(0)
With Worksheets("list2")
adresat = "adresat@posta.cz"
vec = "certifikat " & .Range("c15").Value & " " & Now()
'
' telo zpravy z bunky c16, v bunce odradkovano Enter#########
' telo = .Range("c16").Value
'############################################################
' vytvoreni tela zpravy nactenim neprazdnych bunek z bloku********
' serazeno: a1,b1,c1,a2,....,c9,a10,b10,c10
Set SBlk = .Range("a1:c10").SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues)
For Each SCll In SBlk.Cells
telo = telo & IIf(telo = vbNullString, vbNullString, vbCrLf) & SCll.Value
Next SCll
Set SCll = Nothing
Set SBlk = Nothing
'*****************************************************
End With
With myItem
.To = adresat
.Subject = vec
.Body = telo
' .NoAging = True
' .ReadReceiptRequested = True
' .OriginatorDeliveryReportRequested = True
' .display
.send
End With
Set ol = Nothing
Set myItem = Nothing
End Sub
Re: VBA Excel - odesílání html mailu
Napsal: 25 říj 2010 12:58
od Branscombe
OK, a jak můžu nastavit třeba font (Arial, velikost 10) a hypertextový odkaz ?? V html kódu bych to zvládl, ale tady ne ... :-/
Re: VBA Excel - odesílání html mailu
Napsal: 25 říj 2010 13:44
od navstevnik
Re: VBA Excel - odesílání html mailu
Napsal: 15 lis 2014 17:20
od BUNIS
navstevnik píše:zpravu v pozadovanem tvaru vygeneruje:
Kód: Vybrat vše
Option Explicit
Sub SendMail()
Dim ol As Object, myItem As Object
Dim adresat As String, vec As String, telo As String, SBlk As Range, SCll As Range
Set ol = CreateObject("outlook.application")
Set myItem = ol.CreateItem(0)
With Worksheets("list2")
adresat = "adresat@posta.cz"
vec = "certifikat " & .Range("c15").Value & " " & Now()
'
' telo zpravy z bunky c16, v bunce odradkovano Enter#########
' telo = .Range("c16").Value
'############################################################
' vytvoreni tela zpravy nactenim neprazdnych bunek z bloku********
' serazeno: a1,b1,c1,a2,....,c9,a10,b10,c10
Set SBlk = .Range("a1:c10").SpecialCells(xlCellTypeConstants, xlNumbers + xlTextValues)
For Each SCll In SBlk.Cells
telo = telo & IIf(telo = vbNullString, vbNullString, vbCrLf) & SCll.Value
Next SCll
Set SCll = Nothing
Set SBlk = Nothing
'*****************************************************
End With
With myItem
.To = adresat
.Subject = vec
.Body = telo
' .NoAging = True
' .ReadReceiptRequested = True
' .OriginatorDeliveryReportRequested = True
' .display
.send
End With
Set ol = Nothing
Set myItem = Nothing
End Sub
uteklo už hodně vody od této diskuze, ale mohl byste mi poradit,jak makro vylepšit, aby odeslané e.maily nezůstvávaly v outlooku ve složce "odeslané" ani ve "smazané". makro navíc funguje jen při již spuštěném outlooku. Jde to nějak vyřešit, např. že e.mail odešle až při dalším spuštění outlooku uživatelem ?? děkuji
Re: VBA Excel - odesílání html mailu
Napsal: 15 lis 2014 19:01
od cmuch
Bohužel
navstevnik již neodpoví.
Koukni tu
http://excelplus.net/jak-odeslat-e-mail-z-excelu/ a pomocí objektového modelu Outlooku se Ti zprávy nezobrazí v odeslané poště, Outlook nemusí být zpuštěný.
Ale je to skoro stejné, já nemám nainstalovaný Outlook tak nemůžu vyzkoušet.