25 September 2023

Wczytywanie maili do Excela

W 15 odcinku mojego poradnika pokazywałem Wam jak wysyłać maile z Excela wykorzystując Outlooka. Dziś pokażę jak wczytywać maile z Outlooka do Excela.

Wczytywanie maili do Excela
theme-w-ico
theme-ico

Opis filmu

Wyobraźmy sobie proces w którym firmowe zamówienia są rejestrowane w arkuszu Excel wraz z ich aktualnym statusem np. w poniższej tabeli

 

……………………..

 

 

 

Po zamówieniu nasz dostawca potwierdza przyjęcie zamówienia wysyłając nam maila z jego numerem oraz informacją o potwierdzeniu. Maile te korzystając z funkcjonalności Outlooka wrzucamy sobie do jednego folderu zgodnie z poniższym widokiem.

 

 

.

Naszym celem będzie przygotowanie makra które automatycznie sprawdzi maile znajdujące się w katalogu Excel_Test nie starsze niż z ostatniego tygodnia (żeby nie trwało to za długo) i zmieni status zamówień które zostały potwierdzone przez dostawcę.

Na początek utwórzmy nowe makro wybierając Menu -> Widok -> Makra -> Wyświetl makra  wpisanie nazwy np. Wczytywanie_Danych_z_Maila oraz wciśnięcie Utwórz

Następnie musimy zadbać o  włączenie biblioteki funkcji umożliwiających nam korzystanie z Outlooka za pomocą Menu Tools -> References -> zaznaczamy Microsoft Outlook 16.0 Object Library w okienku edycji makra.

 

 

Teraz możecie wkleić poniższy kod makra

 

 

 

Sub Wczytywanie_Danych_z_Maila()

 

‘ Wczytuje maile z katalogu Excel_Test w Inbox Outlooka i zmienia status zamówienia

    Dim Poczta As Object 
    Dim Folder As Object  
    Dim Mail As Object                                    

   

    Set Poczta = CreateObject(“Outlook.Application”)
Set Folder = Poczta.GetNamespace(“MAPI”).GetDefaultFolder(olFolderInbox).Folders(“Excel_Test”)

For Each Mail In Folder.Items                                  

If Mail.ReceivedTime >= DateAdd(“ww”, -1, Now()) And _        InStr(Mail.Subject, “potwierdzenie przyjęcia”) > 0 Then 
w=2
 
While Cells(w, 1) >= DateAdd(“ww”, -1, Now())      

If Cells(w, 2) = Left(Mail.Subject, 9) Then  

Cells(w, 3) = “Potwierdzone”           
w = w + 100                                                      

End If
w = w+1
Wend
End If
Next
End Sub

‘ Definicja zmiennej Poczta
‘Definicja zmiennej Folder
‘Definicja zmiennej Mail

 

‘Przypisz do zmiennej Poczta obiekt Outlook

‘Przypisz do zmiennej Folder katalog Excel_Test z Inbox Outlooka

 ‘Dla każdego maila w katalogu

 ‘Sprawdź czy przyszedł w ostatnim tygodniu oraz
‘Czy w temacie zawiera tekst “potwierdzenie przyjęcia”

‘Ustaw zmienną w (numer sprawdzanego wiersza tabelki) na 2
‘Dla każdego wiersza w którym data w kolumnie 1 tabeli jest nie starsza niż tydzień
 ‘Jeżeli numer zamówienia w tabeli równa się numer zamówienia w mailu
‘Wpisz “Potwierdzone” w kolumnie 3 tabeli
‘i skocz o 100 wierszy w dół (żeby nie sprawdzać kolejnych wierszy)
‘W przeciwnym razie nic nie rób
‘zwiększ numer wiersza o 1
‘Koniec sprawdzania tabeli
‘Jeżeli mail nie pasuje do wzorca nic nie rób
‘Weź następny mail

Po uruchomieniu zobaczycie natychmiastowy efekt w naszej tabelce

Za pomocą tego rozwiązania możecie oczywiście budować bardziej zaawansowane algorytmy które odzyskają Wasz cenny czas tracony na ręczne sprawdzanie maili i nanoszenie zmian w Excelu.

Mam nadzieję, że spróbujecie swoich sił w łączeniu Excela z Outlookiem, gdybyście mieli z tym problem jak zawsze zapraszam do korespondencji na adres konrad.pogodz@itch.pl

Pobierz darmowy materiał szkoleniowy:

Zgłoszenie serwisowe

Wprowadź dane swojej firmy:

Potrzebujesz ofertę?