Wątek przeniesiony 2021-01-28 13:26 z Inne języki programowania przez cerrato.

VBA wysyłające maila (outlook) z "dynamicznymi" danymi

0

Cześć!

Jestem świeży w VBA i próbuje napisać makro, które będzie pobierało mi konkretne dane z excela i wysyłało na podstawie nich maila do odpowiedniego adresata.

Sprawa wygląda następująco:
Mam excela z dwiema kartami:

  1. Pierwsza ("Email List") i zawiera w sobie dwie kolumny: User Name oraz Email.
  2. Druga ("Resources") zawiera w sobie: Project Name, Project Manager, Effort in hrs i Duration in days.

A teraz co dokładnie chcę uzyskać:
Chcę żeby to makro najpierw brało nazwe z kolumny "Project Manager", następnie po niej vlookupowało do drugiej karty "Email List", w celu uzyskania adresu na który ma wysłać wiadomość. Następnie aby utworzyło tą wiadomość na wskazany adres i załączyło w niej kolumny: "Project Name", "Effort in hrs" i "Duration in days".

Dla przykładu:

"Witaj Janie Kowalski,
System wykrył, że twój Projekt nr. 1 potrzebuje effortu 20h, rozłożonego na 3 dni. Przypisz proszę odpowiedni resource w systemie."

Próbuje w swoim zakresie ciągle coś napisać, ale jak na razie bezskutecznie... Staram się trochę posiłkować tym tematem: https:// stackoverflow.com/questions/26655348/vba-to-send-email-using-if-statements-and-lookups, ale na razie bezskutecznie.

Z góry dzięki za pomoc!

0

Myślę, że w przesłanym przez Ciebie przykładzie są wystarczające informacje do wyszukania i pobrania danych z arkusza Excel.

myValue = Application.Vlookup(value_to_lookup, range_to_search, column_number, exact_match)

Parametry do tej funkcji będą pewnie zbieżne do Excel'owej funkcji
=WYSZUKAJ.PIONOWO(szukana_wartość; tabela_tablica; nr_indeksu_kolumny;[przeszukiwany_zakres])

Jeśli chodzi o przygotowywanie wiadomości ja realizowałem to poprzez przygotowywanie szablonu w formacie *.html, podmianie parametrów z pomocą vbs (wczytaj plik, replace, zapisz) i załączenie wynikowego pliku jako body wiadomości e-mail.

--
Paweł

1 użytkowników online, w tym zalogowanych: 0, gości: 1