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.
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
Wprowadź dane swojej firmy: