< návrat zpět

MS Excel


Téma: email z excelu do outlooku rss

Zaslal/a 9.2.2021 19:11

Zkoušel jsem napsat makro v Outlooku. - zatím mi jde jen připravit mejl pro jednoho klienta, a přiložit všechny soubory z jeho složky.

..ale je tu problém, že než ho spustím, musím ručně otevřít nový prázdný email a nad ním až spustit to makro.

/////

Private Sub vice_priloh_Click()
Rem tlačítko doplní všechny soubory do nového meilu.z daneho adresare
Rem Funguje jen v Outloku a Musis ručně otevřít nový prázný email
Rem Sub AttachAllFilesinaLocalFolder()
' vloží do přílohy emailu všechny soubory ze složky

Dim objMail As Outlook.MailItem
Dim strFolderPath As String
Dim strFileName As String

If TypeName(Application.ActiveInspector.CurrentItem) = "MailItem" Then
Set objMail = Application.ActiveInspector.CurrentItem
End If

'Změňte cestu ke složce podle svého skutečný případ
strFolderPath = "C:\a pracovni\adresare\adam\"
strFileName = Dir(strFolderPath)

While Len(strFileName) > 0
objMail.Attachments.Add (strFolderPath & strFileName)
strFileName = Dir
Wend

End Sub

///////

...jde to nějak vyřešit , aby se ten nový email otevřel sám, a doplnily se i pole:

????? .BodyFormat = olFormatHTML
.Display
.HTMLBody = "posíláme protokoly" & " " & " Najděte přiložený soubor " & .HTMLBody

.To = "ab@volny.cz"
.CC = "ab@volny.cz"
.BCC = "ab@volny.cz"
.Subject = "TEST MAIL"

Chtěl jsem do toho taky přidat příjemce, příjemce kopie, předmět, a text ale nevím jak to tam zakomponovat

Víc by mi vyhovovalo, kdyby to makro bylo dostupné z excelu, ale když ho tam nakopíruju, tak mi vyhodí chybu "

***************************************

Děkuji

Pavel

Zaslat odpověď >

Strana:  « předchozí  1 2
#049816
elninoslov
Problém je Referencia. Je to napísané hneď v prvom riadku
' Přidat Tools - References - Microsoft Outlook xx.x Object Library
To "xx.x" znamená Vašu verziu! Ja mám Office 2019, teda číslo verzie je 16.0. Vy máte Office 2010, a číslo verzie je 14.0.

Ak sa pozriete do Referencií, uvidíte tam MISSING na verzii 16.0. Tak ju odčiarknite, potvrďte. Potom začiarknite Vašu 14.0 a potvrďte. Chyba s Right$ je len nejaká divná sprievodná reakcia na tú referenciu. Ak opravíte Referenciu, Right$ aj Right bude fungovať.citovat
#049821
avatar
Ok, vyzkouším,a otestuju.
Děkuju !citovat
#049822
elninoslov
Ešte tu pracujem s variantom automatického vymieňania referencie na Outlook podľa aktuálnej verzie, priamo za behu kódu. Čo mi funguje v E2019, ale v E2010 mi nejde nefunkčná referencia zmazať. Skúsim ešte poriešiť.citovat
#051650
avatar
Zdravím,vše šlape perfektně.
Drobně si upravuju makro na jiné vstupní parametry. A narazil jsem na problém, nevím jak přidat do podmínky ještě další příkaz:

' orig If bIsSended Then Odeslano(i, 1) = "A" 'když byl příznak odeslání, zapiš "A"
If bIsSended Then Odeslano(i, 1) = "Odeslano" 'když byl příznak odeslání, zapiš "Odeslano"
...zmenil jsem si "A" na "Odeslano"

protože ten kod aplikuju na jiný případ, kde po načtení tabulky, odeslání emailů nezapisuju údaj z pole "Odeslano" zpět do původního sloupce ale vedle, tak pokud @odeslan byl, doplní se tam "Odeslano" ale pokud nebyl, doplní se mi tam hodnota ze zdrojového sloupce, kde bylo "N"- a to potřebuju ošetřit.
tzn přidat podmínku, že když :

If bIsSended Then Odeslano(i, 1) = "Odeslano" 'když byl příznak odeslání, zapiš "Odeslano"

????'když se příznak nezměnil na Odeslano, vymaž to co tam zbylo tzn"N"???

... nebylo provedeno, tak do toho (pole) koukne a pokud tam zůstalo "N" , tak ho smaže.

Ten klíčový řádek je asi:
Worksheets("Exp").Cells(PRVNI_RADEK_DAT, 9).Resize(RowsA).Value = Odeslano 'Zápis výsledků do 9.sl., zda bylo odesláno, nebo zůstáva predchozí stav
'

A prosím, jinak obecně bych potřeboval vysvětlit, proč to VBA nebere?

Mám v bunce i4 "N", v bunce vedle i5 mám vzorec :
=KDYŽ(I4="N";""), to je jasné, funguje
ale potřebuju to napsat do VBA..jak ?
If Range(i4).value = "N" Then Range(i5).Value = "je tam N"
...samozřejmě to nefunguje, kde je ten "pes" ?

Tohle je jen jednoduchý příklad, abych pochopil jak na to.

Chci totiž v makru napsat to , aby mi byla vrácena třeba do proměnné hodnota výsledku vzorce.

Díky.Pcitovat
#051651
avatar
...jeste ta tabulka
Příloha: xlsx51651_do-fora.xlsx (13kB, staženo 10x)
citovat
#051653
avatar
..Furt se v tom hrabu...
A není mi jasné to bIsSended

On Error Resume Next
.Send 'odeslání mailu
bIsSended = Err.Number = 0 'otestování, zda přišlo pri odeslání mailu k chybě, a nastavit príznak odeslání
.Close olDiscard
'případné zrušení mailového okna bez uložení, po případné chybě při odesílání
On Error GoTo 0



znamená to, že když outlook vrátí , že nedošlo k chybě při odeslání , ale kde se nastavuje ten příznak, až tady?:
If bIsSended Then Odeslano(i, 1) = "Odeslano" 'když byl příznak odeslání, zapiš "Odeslano"citovat

Strana:  « předchozí  1 2

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje