Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
Przesunięty przez: Artik
15-01-2021, 03:46
Wysyłanie maila z excel + 4 konta rózne konta w Outlook
Autor Wiadomość
krypto
Forumowicz


Posty: 22
Wysłany: 14-01-2021, 22:54   Wysyłanie maila z excel + 4 konta rózne konta w Outlook

Cześć,

Posiadam kod VBA, który wysyła maile. Chciałbym tylko nieco go zmodyfikować. W outlook mam skonfigurowane 4 skrzynki. Jedną swoją prywatną + 3 skrzynki grupowe (kilka użytkowników z każdej z nich korzysta). W tym momencie podczas wysyłania maila, excel wysyła zawsze z mojej skrzynki prywatnej, a chciałbym, aby wysłał z jednej ze skrzynek grupowych W jaki sposób mogę "wymusić" w kodzie, aby wysyłanie maili odbywało się z właściwej skrzynki?

Ponadto nie wiem jak zrobić, aby dodawała się stopka do maila, która zdefiniowana jest w outlooku. Moim zamysłem jest to, aby każdy z użytkowników mógł kliknąć w przycisk "ABCD" i aby mail został wysłany ze skrzynki grupowej, ale każdy ma swoja stopkę, ze swoim imieniem i nazwiskiem.

Plik w załączniku,
Pozdrawiam

MAIL.xlsm
Pobierz Plik ściągnięto 7 raz(y) 18.16 KB

ID posta: 398332 Skopiuj do schowka
 
 
Rafał B.
Exceloholic



Wersja: Win Office 2016
Pomógł: 34 razy
Posty: 235
Wysłany: 15-01-2021, 07:54   

Kod:
Set OutMail = OutApp.CreateItem(0)

Zamień zero na np. 1 - jest to numer skrzynki.

Co do stopki - nie pamiętam, ale Internety podają żeby przechwycić .body przed jego modyfikacją:
Kod:
Sub Klient_MAIL()
    Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0) // tutaj 0 -> np 1, o którym wspomniałem powyżej

    OutMail.Display   
    Dim podpis As String
           podpis = OutMail.body

    With OutMail
        .To = "abcd@gmail.com;ktostam@gmail.com"
        .CC = "ktostutez@gmail.com"
        .Subject = "Numer klienta" & " " & Sheets("MAIL").Range("H3")
        .Body = "Witam," & vbCrLf & vbCrLf & _
                     "Czy Pana numer klienta to: " & Sheets("MAIL").Range("H3") & _
                     " ?" & vbCrLf & vbCrLf & _
                     "Pozdrawiam" & vbCrLf & podpis
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub

Nie mogę przetestować, bo nie jestem aktualnie na Windowsie, wiec co do drugiego- nie jestem pewien.

Inna sprawa, że sporadycznie będzie się zdarzać, że linijka:
Kod:
    Set OutApp = CreateObject("Outlook.Application")

nie zadziała, bo Outlook jest inny od np. Worda czy Excela w świetle powoływania, przechwytywania instancji opis zagadnienia na słynnej stronie Rona de Bruin wraz z proponowanym rozwiązaniem .
_________________
Jest niemal niemożliwe nauczenie dobrego programowania uczniów, którzy byli narażeni na kontakt z BASIC: jako potencjalni programiści są okaleczeni, bez nadziei na poprawę. (Edsger Dijkstra, pionier informatyki).
Po części dotyczy również VBA.
ID posta: 398337 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 3091 razy
Posty: 10242
Wysłany: 16-01-2021, 01:11   

Rafał B. napisał/a:
Co do stopki - nie pamiętam, ale Internety podają żeby przechwycić .body przed jego modyfikacją
Oj, chyba nie. Nie tyle chodzi o Body, co o wyświetlenie (Display) okna maila. Wtenczas stopka dodaje się automatycznie. Ale paznokcia nie dam sobie uciąć. :-)

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 398408 Skopiuj do schowka
 
 
Rafał B.
Exceloholic



Wersja: Win Office 2016
Pomógł: 34 razy
Posty: 235
Wysłany: 16-01-2021, 09:28   

No ale w czym to przeczy, co napisałem? ;-) Jedynie dobrze doprecyzowałeś mechanizm, ale jest on raczej oczywisty nawet dla laika, skoro dajemy metodę .Display przed kreacją maila... Swoją drogą ktoś na to całkiem sprytnie wpadł, ale szkoda że Microsoft znowu tutaj nawalił, żeby stosować takie sztuczki...

Innym sposobem dodania sygnaturki jest jej odtworzenie i użycie metody HTMLBody. W przypadku przeróbki dużej ilości maili byłbym skłonny to rozważać.
_________________
Jest niemal niemożliwe nauczenie dobrego programowania uczniów, którzy byli narażeni na kontakt z BASIC: jako potencjalni programiści są okaleczeni, bez nadziei na poprawę. (Edsger Dijkstra, pionier informatyki).
Po części dotyczy również VBA.
ID posta: 398410 Skopiuj do schowka
 
 
krypto
Forumowicz


Posty: 22
Wysłany: 16-01-2021, 13:43   

Cześć,

Dziękuje, wszystko działa jak należy włącznie z dodaniem stopki :)

Nasunął mi się jeszcze jeden pomysł, a w zasadzie dwa. W jaki sposób można wymusić makrem, aby komórka H3 zawsze pozostawała wypełniona na żółto? Teraz, gdy wkleję cokolwiek, nie jako wartość to robi się ona biała.

Drugie pytanie W jaki sposób mogę pogrubić tę frazę: "Czy Pana numer klienta to: "?
ID posta: 398432 Skopiuj do schowka
 
 
Rafał B.
Exceloholic



Wersja: Win Office 2016
Pomógł: 34 razy
Posty: 235
Wysłany: 17-01-2021, 14:15   

Kolor może przy użyciu zdarzenia arkuszowego Worksheet_Change, ale pewnie jest jakiś sprytniejszy i prostszy sposób, może z wykorzystaniem ochrony arkusza.

Co do pogrubienia tekstu to trzeba zamiast .Body użyć .HTMLBody i ująć pogrubiony tekst między znaczniki <b>teskst</b>:
Cytat:
.HTMLBody = "Witam," & vbCrLf & vbCrLf & _
"<b>Czy Pana numer klienta to</b>: " & Sheets("MAIL").Range("H3") & _
" ?" & vbCrLf & vbCrLf & _
"Pozdrawiam" & vbCrLf & podpis

Tylko prawdopodobnie przestanie Ci działać wówczas stopka, musiałbyś ją odtworzyć w HTMLu.
_________________
Jest niemal niemożliwe nauczenie dobrego programowania uczniów, którzy byli narażeni na kontakt z BASIC: jako potencjalni programiści są okaleczeni, bez nadziei na poprawę. (Edsger Dijkstra, pionier informatyki).
Po części dotyczy również VBA.
ID posta: 398480 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 3091 razy
Posty: 10242
Wysłany: 17-01-2021, 15:12   

Rafał B. napisał/a:
Tylko prawdopodobnie przestanie Ci działać wówczas stopka, musiałbyś ją odtworzyć w HTMLu.
No znowu chyba nie. :-) Na moją logikę wystarczy zmienić kolejność. Najpierw HTMLBody, a dopiero potem Display. Lecz kolejnego paznokcia też nie dam.
Rafał B. napisał/a:
Kolor może przy użyciu zdarzenia arkuszowego Worksheet_Change
Myślę, że najlepiej tego użyć.

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 398482 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe