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.htm
Vyber 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
Jak jsem uvedl, nemam nainstalovany Outlook. Takze odkazy:
http://www.rondebruin.nl/sendmail.htm
a nejspise:
http://www.rondebruin.nl/mail/folder3/mail2.htm

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.