Sebastianie, makro działa bardzo dobrze. Czy jest jakiś sposób żeby załączać do każdego maila domyślną stopkę z Outlook w formacie HTML z obrazkami w niej zawartymi?
Fimik petarda, świetnie wytłumaczone, po prostu top :D a czy można się dowiedzieć, w jaki sposób wstawić obraz jpg albo png do treści maila oraz żeby na samym końcu była stopka, która jest zapisana w outlook?
Swietny materiał. Mam pytanie, czy jest mozliwość dodawania załączników z dysku z konkretnego folderu ale tylko i wyłącznie na podstawie daty modyfikacji? Czyli jesli w folderze co miesiąc przybywają 2 nowe pliki, czy jest możliwosc wysłania tylko 2 z bierzącego miesiąca i ponawiać to co miesiąc?
Super film i tlumaczenie. A jak to wyglada gdy chce odniesc sie do zalacznika x onedribe lub sharepoint ktorego adres jest w komorce excel? Czy moge w jakis sposob dodac zalacznik z chmury bo w tym momencie nie zalacza mi nic w takim przyadku?
Świetnie Pan tłumaczy! Jestem w szoku jak to szybko zadziałało :o Mam pytanie - jeśli w Outlooku mam podpięte 2 konta pocztowe, to czy jestem w stanie w kodzie zawrzeć z którego konta chcę wysłać wiadomość?
Dzień dobry, dziękuję za komentarz. Odpowiadając na pytanie, to jak najbardziej możemy w kodzie zawrzeć instrukcje, które będą zmieniać konta przed wysłaniem. Zapraszam do najnowszego filmu, w którym pokazuje jak to zrobić :) ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-m6dy6Vmiu-Y.html Pozdrawiam
Super instruktaż! Tylko takie mam małe pytanie? Jak zrobić, aby w treści wiadomości zamieścić wartości z kilku komórek? Potrzebuję zrobić wiadomość o takiej samej treści, jednak cyfra zawarta w środku musi być inna do wszystkich (podana w innej komórce). Ktoś doradzi jak to zrobić? :)
Super. Bardzo fajnie wytłumaczone i w prosty sposób. Wykorzystałem Pana kod u siebie, strasznie ułatwił mi pracę.Mam prośbę, czy może Pan pokazać jak zrobić warunek, który wyszukuje komórkę z przekroczoną datą do aktualnej i wstawia tylko taką komórkę do makra z prezentowanego przykładu. Na powyższym przykładzie makro wysyła każdy wiersz, chciałbym mieć tylko ten, który spełnia warunek daty i wtedy nastąpi wysłanie maila. Z góry dziękuję za pomoc. Pozdrawiam serdecznie
Dziękuję za komentarz. W przypadku sprawdzenia daty potrzebna jest instrukcja warunkowa IF. Należy ją umieścić zaraz za rozpoczynającą się pętlą FOR NEXT. Instrukcja sprawdza czy data w komórce np. Range("A" & i+1) jest większa od aktualnej Now(). (Now = TERAZ(), Date() = DZIŚ()) Przykład: For i = 1 To Application.WorksheetFunction.CountA(Arkusz1.Range("B2:B20")) If Arkusz1.Range("A" & i + 1) > Now Then ' Sprawdzane komórki z kolumny A to daty, które wraz z powiększeniem zmiennej "i" przechodzą do następnej komórki dzięki pętli. 'tutaj cały kod tworzący i wysyłający maile End If Next i Pozdrawiam
Super nagranie. Mam pytanie, czy będzie nagranie (jeśli to możliwe oczywiście), w którym np zostanie pokazane jak Tworzyć automatycznie załączniki z danych w excelu. W pliku excel mam tabelę osób (np 10, Imię i nazwisko oraz Pełna nazwa), każda z osób ma przypisanych podwładnych + ich stanowisko. Do tej pory robiłem to tak, że nagrałem makro jak filtruję po osobie, kopiuję dane do osobnego arkusza, potem zedytowałem makro do 10 osób (pętli jeszcze nie ogarnąłem do tego). A następnie już ręcznie tworzę kopię arkusza jako plik. To dość manualne i dla 10 osób jest ok. ale czy da się tak zrobić z założeniem, że nazwa pliku będzie składała sie z wartości z komórki C (np dział) + Pierwsze 3 litery imienia i nazwiska + DZIŚ()?.
Dzięki za komentarz :) Jeśli chodzi o nagranie, które tworzy automatyczne załączniki to muszę przyznać, że na kanale jest kilka filmów, które po obejrzeniu powinny "nakierować" na takie rozwiązanie. Przykładowe dwa filmy, które będą pomocne to: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-JmOs9LuKR84.html ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-lwKg71D5Jmo.html Oczywiście jest ich dużo więcej :) Rozwiązanie, o którym Pan wspomina to fajne wyzwanie w VBA ponieważ porusza ono wiele różnych zagadnień. Ps. jeżeli otrzymam strukturę pliku z przykładowymi danymi to postaram się taki film przygotować :) Pozdrawiam
Witam. Bardzo prosto wytłumaczone! Ogromnie ułatwi mi to prace. Będę miała do wysłania 300 maili, pod każdy muszę podpiąć inny załącznik (pdf z oświadczeniem). Jest jakiś sposób na automatyczne dodatnie źródła załącznika?
Dziękuje za komentarz. Rozwiązań może być wiele. Wszystko zależy od struktury arkusza w Excelu a także jak podpisane są pliki, które będą źródłem załącznika. Można użyć VBA ale w tym przypadku wystarczy Power Query do wczytania plików z folderu do osobnego arkusza a następnie przyporządkować te ścieżki do docelowego arkusza. Musimy wyszukać (funkcja WYSZUKAJ.PIONOWO, X.WYSZUKAJ, INDEKS+PODAJ.POZYCJĘ) wspólny identyfikator dla tych danych, który jeżeli nie jest jednoznaczny można skorzystać z narzędzia wypełnianie błyskawiczne (Flash Fill), wyszukiwanie z użyciem symboli wieloznacznych ("*", "?") lub innych funkcji predefiniowanych w Excelu. Pozdrawiam
Dzień dobry jest chyba jeszcze inny problem zauważyłem że załączniki muszą być umieszczone w tym samym katalogu podając dwie różne ścieżki do załączników występuje błąd. Można jakoś temu zaradzić?. Proszę o pomoc.
Super!! ale co zrobić jeżeli mam alfabetycznie uporządkowaną listę osób ale nie wszyscy mają maila wtedy napotykając brak adresu program nie idzie dalej i nie sprawdza kolejnych pozycji proszę o pomoc.
Mam plik XLS w którym są terminy wykonania pewnych rzeczy. Ponieważ by kontrolować je trzeba plik otworzyć i ręcznie sprawdzić więc zdarza się, że pewne rzeczy przegapię. O ile ten plik otwierany jest tylko czasami to Outlooka używam codziennie. Po obejrzeniu Pana szkolenia przyszło mi do głowy by po otwarciu Outlooka otwierał sobie ten plik odpytał połę data i wysłał email z przypomnieniem lub dodał informację w kalendarzu. Jest to możliwe, jeżeli tak to jak to zrobić?
Dziękuję za komentarz. Wydaję mi się, że dobrym sposobem będzie napisanie makra bezpośrednio w programie Outlook i dodanie go na wstążkę. Makro musi powołać obiekt dotyczący aplikacji Excel do "życia" w celu uruchomienia konkretnego pliku a następnie wykonać makro, które wyśle plik z przypomnieniem (coś na wzór w filmie). Pozdrawiam
Tak jest to możliwe do osiągnięcia. Kod należy rozbudować np. o pobieranie z odpowiedniej ścieżki własnej sygnatury. Proszę przeanalizować poniższy kod: Option Explicit Sub wysylanieMaila() 'Tworzymy zmienne Dim Oap As Outlook.Application Dim Omail As Object 'UstawiamyZmienne Set Oap = New Outlook.Application Set Omail = Oap.CreateItem(0) Dim SigString As String, Signature As String SigString = Environ("appdata") & _ "\Microsoft\Signatures\Podpis1.htm" ' w tym miejscu należy wpisać nazwę własną pliku. Ścieżka: C:\Users\sgodz\AppData\Roaming\Microsoft\Signatures azwa_wlasna_pliku.htm If Dir(SigString) "" Then Signature = PobierzSyg(SigString) Else Signature = "" End If 'SMARTEXCEL.PL (kontakt@smartexcel.pl) With Omail .To = "kontakt@smartexcel.pl" .CC = "kontakt@smartexcel.pl" '.BCC = .Subject = "Wiadomość testowa" '.Body = "To jest przykładowy mail przygotowany w Excel VBA" & Signature .HTMLBody = "To jest przykładowy mail przygotowany w Excel VBA" & Signature .Attachments.Add "C:\Users\sgodz\Documents\EXCEL - VBA3\Załącznik1.xlsx" .Display ' tylko wyświetlamy '.Send End With 'Oczyszczanie pamięci Set Oap = Nothing Set Omail = Nothing End Sub Function PobierzSyg(ByVal Plik As String) As String Dim fso As Object Dim sg As Object Set fso = CreateObject("Scripting.FileSystemObject") Set sg = fso.GetFile(Plik).OpenAsTextStream(1, -2) PobierzSyg = sg.readall sg.Close End Function Powodzenia
Aby w mailu została zawarta tabela, wykorzystałbym do tego język znaczników HTML za pomocą, którego np. w pętli (lub tablicy) zbudujemy samodzielnie tabele a następnie umieścimy ją we właściwości .HTMLBody zamiast .Body Tak jak wspomniałem na początku, język HTML pozwoli nam wtedy budować tabelki w Excelu i umieszczać je w treści maila a nie w załączniku. Przykład takiego maila poniżej: Option Explicit Sub wysylanieMaila() Dim rng As Range, cell As Range, ZawartoscHtml As String, i As Long, j As Long 'Ustawiamy zakres tabeli do wstawienia w mailu Set rng = Arkusz1.Range("A1:H" & Arkusz1.Range("a1").CurrentRegion.Rows.Count) 'Zmienna, która rozpoczyna składnie HTML ZawartoscHtml = " " 'Pętla, która pobiera wiersze i kolumny, tworząc jednocześnie tabelę For i = 1 To Arkusz1.Range("a1").CurrentRegion.Rows.Count ZawartoscHtml = ZawartoscHtml & "" For j = 1 To Arkusz1.Range("a1").CurrentRegion.Columns.Count ZawartoscHtml = ZawartoscHtml & "" & Cells(i, j).Value & "" Next ZawartoscHtml = ZawartoscHtml & "" Next ZawartoscHtml = ZawartoscHtml & "" 'Tworzymy zmienne Dim Oap As Outlook.Application Dim Omail As Object 'UstawiamyZmienne Set Oap = New Outlook.Application Set Omail = Oap.CreateItem(0) With Omail .To = "kontakt@smartexcel.pl" .CC = "kontakt@smartexcel.pl" .Subject = "Wiadomość testowa" .HTMLBody = ZawartoscHtml .Send End With 'Oczyszczanie pamięci Set Oap = Nothing Set Omail = Nothing End Sub Powodzenia
@@smartexcel-s.godziszewski Dzięki, udało mi się wstawić tabele przez WordDocument, ale działa jakoś wolno i długo myśli,bo maili generuje około 30. Pokombinuję z htmlem na pewno będzie szybciej działać.
Mam problem, gdy chcę zrobić, aby w treści wiadomości znalazła się zawartość kilku komórek z zakresu F4, do ostatniej niepełnej to wyskakuje błąd. Chciałbym wiedzieć, czy jest to możliwe do zrobienia. Z góry dziękuję za odpowiedź.
Dzięki za komentarz. Tak jest to możliwe do zrobienia. Należy podejść do tematu tak, że używając pętli np. For Next lub For Each Next połączyć zawartość z kilku (dowolnej ilości wierszy/komórek) komórek wstawiając je do zmiennej. Np. coś takiego: Dim zawartosc As String, i As Integer For i = 1 To 5 zawartosc = zawartosc & Range("A" & i) & vbNewLine Next i Oczywiście jest to prosty przykład i należy go dostosować pod własne potrzeby a nawet rozbudować :). Kolejny krok to użycie tej zmiennej jako wartości odpowiadającej za treść wiadomości. Pozdrawiam
A czy ma Pan włączoną bibliotekę, o której wspominam na początku filmu? W oknie VBE (edytor Visual Basic) w menu TOOLS należy wybrać REFERENCES a następnie zaznaczyć (dodać) bibliotekę Microsoft Office 16.0 Object Library.
@@smartexcel-s.godziszewski z tej strony akurat Pani :) tak, mialam wlaczona biblioteke, ale jak wspomnialam w powyzszym udalo sie delikatnie zmodyfikowac kod.