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 113 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 73 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 113 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: 1547
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
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4832
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • HTML editor
    od BigSandy » 21 led 2025 09:51 » v Programy ke stažení
    3
    12260
    od pcmaker Zobrazit poslední příspěvek
    03 úno 2025 09:00
  • Kdo umí číst kód HTML? Doladit jednu podmínku. Příloha(y)
    od Minapark » 06 led 2025 09:21 » v Programování a tvorba webu
    22
    10045
    od Minapark Zobrazit poslední příspěvek
    20 led 2025 16:54
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12250
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4840
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41

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

Kdo je online

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