VBA Excel - odesílání html mailu

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

VBA Excel - odesílání html mailu

Příspěvekod Branscombe » 20 říj 2010 11:44

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 ??
Přílohy
html e-mail.xlsx
(8.73 KiB) Staženo 106 x

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod navstevnik » 20 říj 2010 21:52

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)

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod Branscombe » 21 říj 2010 08:21

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
Přílohy
výsledek.jpg
html e-mail.xlsx
(8.73 KiB) Staženo 62 x

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod navstevnik » 21 říj 2010 09:08

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

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod Branscombe » 21 říj 2010 10:19

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 ...
Přílohy
html e-mail.xlsm
(16.11 KiB) Staženo 101 x

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod navstevnik » 21 říj 2010 11:06

Nemam nainstalovany Outlook, nemohu overit.:
Set D12 = Worksheets("List1").Range("a1:a10").SpecialCells(xlCellTypeConstants, xlTextValues)

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod Branscombe » 21 říj 2010 11:56

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 ...

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod navstevnik » 21 říj 2010 21:53

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

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod Branscombe » 25 říj 2010 12:58

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 ... :-/

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod navstevnik » 25 říj 2010 13:44

Jak jsem uvedl, nemam nainstalovany Outlook. Takze odkazy:
http://www.rondebruin.nl/sendmail.htm
a nejspise:
http://www.rondebruin.nl/mail/folder3/mail2.htm

BUNIS
nováček
Příspěvky: 1
Registrován: listopad 14
Pohlaví: Muž
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod BUNIS » 15 lis 2014 17:20

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

cmuch
Level 4.5
Level 4.5
Příspěvky: 1544
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: VBA Excel - odesílání html mailu

Příspěvekod cmuch » 15 lis 2014 19:01

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.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Odesílání emailu bez mého vědomí
    od trudy557 » 20 led 2024 19:16 » v Komunikace na internetu
    1
    1553
    od mmmartin Zobrazit poslední příspěvek
    20 led 2024 19:21
  • Excel a OneDrive
    od sginfo » 11 zář 2023 15:28 » v Kancelářské balíky
    16
    6316
    od mirekol Zobrazit poslední příspěvek
    20 říj 2023 08:31
  • excel-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    414
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43
  • Excel komparacedvou soborů Příloha(y)
    od teichmann.ondrej » 15 dub 2024 17:26 » v Kancelářské balíky
    11
    3268
    od teichmann.ondrej Zobrazit poslední příspěvek
    22 dub 2024 15:45
  • Excel - problém se vzorci
    od honzzicek » 28 čer 2023 21:45 » v Kancelářské balíky
    2
    1826
    od honzzicek Zobrazit poslední příspěvek
    01 črc 2023 08:57

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host