Genialny film i super makro. Mam do wysłania 400 maili każdy o innej treści do kogoś innego. Biorę to makro i wysyłam. Niesamowicie dobrze wytłumaczone.
Witam, pytanie początkującego: W 6:30 filmu jestem, wykonuje wszystko po kolei i po wciśnięciu F8 dostaje taki komunikat: Run-time error 287 Application-defined or object-defined error Proszę o pomoc
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?
dzień dobry - super materiał! Pojawia mi się błąd "Nieprawidłowa nazwa pliku lub katalogu" - bez załączników wszystko działa, ale mam dokładnie wpisaną nazwę Arkusz1 i wyskakuje mi ten błąd, również na Pana makru.
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.
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?
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?
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.
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
Ś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ć :) th-cam.com/video/m6dy6Vmiu-Y/w-d-xo.html Pozdrawiam
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
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ć? :)
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
@@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ć.
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
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: th-cam.com/video/JmOs9LuKR84/w-d-xo.html th-cam.com/video/lwKg71D5Jmo/w-d-xo.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
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
Genialny film i super makro. Mam do wysłania 400 maili każdy o innej treści do kogoś innego. Biorę to makro i wysyłam. Niesamowicie dobrze wytłumaczone.
Sebastianie! Zmieniłeś tym filmem mój tydzień pracy z 5 dni na 4 :) Wielkie dzięki!
Super lekcja, zwięźle i na temat. Bardzo dziękuję za Twoją pracę.
Witam, pytanie początkującego:
W 6:30 filmu jestem, wykonuje wszystko po kolei i po wciśnięciu F8 dostaje taki komunikat:
Run-time error 287
Application-defined or object-defined error
Proszę o pomoc
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?
dzień dobry - super materiał! Pojawia mi się błąd "Nieprawidłowa nazwa pliku lub katalogu" - bez załączników wszystko działa, ale mam dokładnie wpisaną nazwę Arkusz1 i wyskakuje mi ten błąd, również na Pana makru.
Dobra robota. Dobrze sie slucha. Fajnie tlumaczysz.. keep up good work
Dziękuję za komentarz.
Jakie napisać polecenie, żeby treść maila została pobrana z kilku komórek arkusza
nie wyswietla mi polskich znakow w tytule/body maila. pewnie przez ustawienia systemu/kodowanie natomiast nie moge dojsc co trzeba zmienic.
Witam, Super sprawa, tylko mam problem gdy chcę wysłać aktualny Plik w którym znajduje się to makro jak stworzyć załącznik jako kopię ?
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.
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?
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?
Mega nagranie! Czy można wybierać sobie skrzynkę z której ma być wysłana wiadomość? W outlooku posiadam dwie.
juz przy tworzeniu pierwszej zmiennej Dim Oap as Outlook.Application mam bład "User-defined type not defined". jak to pokonac?
udalo się obejść
Dim Oap As Object
Dim Omail As Object
Set Oap = CreateObject("Outlook.Application")
Set Omail = Oap.CreateItem(0)
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.
Mam ten sam komunikat pomimo włączonej biblioteki :/
@@smartexcel-s.godziszewski z tej strony akurat Pani :) tak, mialam wlaczona biblioteke, ale jak wspomnialam w powyzszym udalo sie delikatnie zmodyfikowac kod.
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
@@smartexcel-s.godziszewski Dziękuję bardzo za odpowiedź, wszystko elegancko działa :D
@@j.szevczyk857 Super :) Pozdrawiam
Ś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ć :)
th-cam.com/video/m6dy6Vmiu-Y/w-d-xo.html
Pozdrawiam
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
Czy udało się panu napisać takie makro. ?
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ć? :)
A jest jakaś prosta metoda na wstawienie do maila pod body tabeli z arkusza?
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ć.
Chciałbym się zapytać co należy zmienić w kodzie tak aby w mailu była również sygnatura? Czy jest to możliwe do osiągnięcia?
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
@@smartexcel-s.godziszewski Panie Sebastianie w którym miejscu należy wpisać te funkcje, ktora jest na koncu kodu?
udało mi się :) pytanie nieaktyualne, problem pozostal z logiem firmy :D
Niezwykle przydatne :)
Dziękuję :)
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:
th-cam.com/video/JmOs9LuKR84/w-d-xo.html
th-cam.com/video/lwKg71D5Jmo/w-d-xo.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
Super filmik, super tłumaczenie :) a jest możliwość wysłania w mailu zawartości pliku ( np tabelki ) bez załączania pliku ?
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
@@smartexcel-s.godziszewski Bardzo dziękuję :)
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
Dziękuję za pomoc. Sprawdziłem i makro działa bez problemów. Czekam na następne tutoriale. Pozdrawiam serdecznie.
top
Dziękuję za komentarz :)
Planuję listę maili zrobić jako tabelę i wtedy można użyć For Each xxx in Nazwa tabeli, ale to rozwiązanie też bardzo fajne.
Bardzo fajny pomysł. Dziękuje za komentarz :)