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 21 raz(y) 18.16 KB |
|
|
 | ID posta:
398332
|
|
|
 |
|
|
|
Rafał B.
Stały bywalec Excelforum


Wersja: Win Office 2016
Pomógł: 40 razy Posty: 288
|
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
|
|
|
 |
|
|
Artik


Wersja: Win Office 365
Pomógł: 3142 razy Posty: 10399
|
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
|
|
|
 |
|
|
Rafał B.
Stały bywalec Excelforum


Wersja: Win Office 2016
Pomógł: 40 razy Posty: 288
|
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
|
|
|
 |
|
|
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
|
|
|
 |
|
|
Rafał B.
Stały bywalec Excelforum


Wersja: Win Office 2016
Pomógł: 40 razy Posty: 288
|
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
|
|
|
 |
|
|
Artik


Wersja: Win Office 365
Pomógł: 3142 razy Posty: 10399
|
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
|
|
|
 |
|
|
|
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
|
 |
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
|