Magdalena C.

Magdalena C. Lead Representative
(Supervisory),
Fund/Client
Accounting

Temat: czy można w korporacji odpoczać? :) / korespondencja seryjna

Witam!

na zajęciach w ubiegłym roku prowadzący powiedział "analityk musi być leniwy w swojej pracy".
idąc za tym credo - szukam pomocy w korespondencji seryjnej bo nie wyobrażam sobie wysyłania pojedynczo maili. :/

PROBLEM: ok 50 zainteresowanych-> może być ich o zgrozo więcej.

mają otrzymywać wycinek tabeli na maila -> pasek dopisany do swojego nazwiska rozmowy którą mają odsłuchać z dnia poprzedniego która miała miejsce o danej godzinie.

np. e mail: m.krochta@costam.pl Magdalena Krochta telefon.1111111111 z dnia 2015-10-30 godzina 12:00

czyli zainteresowany otrzymuje 2,3, 4 kolumne :) a wysyłane jest na jego mail do niego dopisany (czyli do mini bazy danej)

poniżej kod który wyszukałam skrzętnie w książkach i w internecie:

Sub wyslij_dane()

'moje zmienne
Dim Outlook As Object
Dim Email As Object
Dim AdresEmail As String
Dim tabela As String

'co jak działa- konstruktorzy
Set Outlook = CreateObject("Outlook.Application")
Set Email = Outlook.CreateItem(0)

On Error Resume Next

'ustawienie wartosci poszczegolnych atrybutow obiektu Email
With Email

'adresat wiadomosci
.To = Range("a2").Value

'adresat kopii wiadomosci
.Cc = "m.krochta@xxx.pl"
'tytul wiadomosci
.Subject = "rozmowa na dziś do odsłuchu"

'tresc wiadomosci

.Body = Range("b10").Value & "Witaj!," _
& vbCrLf & vbCrLf & "poniżej przesyłam wymagana rozmowa do odsłuchu," _
& vbCrLf & vbCrLf & "życzę miłego dnia," _
& vbCrLf & "Magdalena Krochta"

'wyslanie wiadomosci
.Send
End With

'wyswietlenie komunikatu o poprawnosci albo niepowodzeniu wyslania e-mail'a
If Err.Number = 0 Then 'Err.Number == 0 -> brak bledu, > 0 -> blad
MsgBox "Zeszyt:" & vbCrLf & vbCrLf & "[ " & ActiveWorkbook.Name & " ]" _
& vbCrLf & vbCrLf & "został przesłany jako załącznik e-mail'a." _
& vbCrLf & "Życzę miłego dnia!", vbInformation, "Operacja powiodła się"
Else
MsgBox "Zeszyt:" & vbCrLf & vbCrLf & "[ " & ActiveWorkbook.Name & " ]" _
& vbCrLf & vbCrLf & "NIE został przesłany." _
& vbCrLf & "Rozwiąż problem i spróbuj ponownie!", vbCritical, "*** Błąd ***"
End If

'wlaczenie obslugi bledow
On Error GoTo 0

'destruktory
Set Email = Nothing
Set Outlook = Nothing

End Sub

i wszystko fajnie działa, ale to dalej nie to co szukam.chciałabym 1 kliknięciem wysłać 50 maili, a powyższe makro wysyła mi 1 komórkę...
prosze o wskazówkę i pomoc w rozwiązaniu mojego problemu.

z góry dziękuje !
Krzysztof Rumiński

Krzysztof Rumiński Specjalista analizy
danych. Narzędzia -
standardowe, meto...

Temat: czy można w korporacji odpoczać? :) / korespondencja seryjna

Witam Pani Magdo,
Nareszcie ktoś się odezwał!
Cieszę się i traktuję to, jako dobry omen

Na razie na szybko - tylko opis podejścia (proszę zadawać dalsze pytania):
50 maili ten program nie wyśle, bo ..nie ma pętli.

Pętla nie będzie banalna, bo w każdym mailu ma być inny adres a nawet inna treść.

Trzeba więc pętlę zorganizować sobie czytając wiersz po wierszu jakiś arkusz Excela, w którym jest zebrane to, co będzie kolejno wysyłane.
wiersz 1- Adres mailowy, treść
wiersz 2- Adres mailowy, treść
wiersz 3- Adres mailowy, treść
.....
wiersz n- Adres mailowy, treść

Jeśli to będą listy zawierające te same treści, to jest najłatwiej.
Jeśli według jakiejś reguły zmieniają się, to trzeba tę regułę oprogramować, albo wypełnić pola treści przy pomocy formuły
Jeśli nie mażadnej reguły, to trzeba w kolejnych wierszach arkusza powstawiać treści do wysyłki dla każdego adresata, którego adres znajduje sie w tym samym wierszu.
Magdalena C.

Magdalena C. Lead Representative
(Supervisory),
Fund/Client
Accounting

Temat: czy można w korporacji odpoczać? :) / korespondencja seryjna

po paru próbach udało się tej samej nocy:)

całe makro fajnie sprawdza się w korporacji
użytkownicy "cieszą się" gdy nacisną guzik i wysyła się masa maili. - ten ich błysk w oku !

poniżej twór (który wiem że pewnie można ulepszyć) - póki co spełnia moje oczekiwania

jak działa: w zakładce arkusz1 - znajduje się lista e-maili - tak jak Pan teraz sugerował w jednym wierszu wraz z tekstem do wysyłki.

Ps. dziękuje że Pan odpowiedział na post :)

Sub wysylka_maili()

Dim OutApp As Object
Dim OutMail As Object
Dim sh As Worksheet
Dim cell As Range
Dim FileCell As Range
Dim rng As Range

With Application
.EnableEvents = False
.ScreenUpdating = False
End With

Set sh = Sheets("arkusz1")

Set OutApp = CreateObject("Outlook.Application")

For Each cell In sh.Columns("B").Cells.SpecialCells(xlCellTypeConstants)

'Enter the path/file names in the C:Z column in each row
Set rng = sh.Cells(cell.Row, 1).Range("C1:Z1")

If cell.Value Like "?*@?*.?*" And _
Application.WorksheetFunction.CountA(rng) > 0 Then
Set OutMail = OutApp.CreateItem(0)

With OutMail
.to = cell.Value
.cc = "magdalena.krochta@gmail.com"
.Subject = "test automatyzacji!" & " " & Range("h1").Value
.Body = "Witaj " & cell.Offset(0, -1).Value & " " & vbCrLf & "" _
& vbCrLf & cell.Offset(0, 1) & " " & cell.Offset(0, 2) _
& " " & cell.Offset(0, 3) & " " & cell.Offset(0, 4) _
& vbCrLf & vbCrLf & "pozdrawiam! :) "

For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
If Trim(FileCell) <> "" Then
If Dir(FileCell.Value) <> "" Then
.Attachments.Add FileCell.Value
End If
End If
Next FileCell

.Send 'Or use .Display
End With

Set OutMail = Nothing
End If
Next cell

Set OutApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Krzysztof Rumiński

Krzysztof Rumiński Specjalista analizy
danych. Narzędzia -
standardowe, meto...

Temat: czy można w korporacji odpoczać? :) / korespondencja seryjna

Magdalena K.:
po paru próbach udało się tej samej nocy:)

całe makro fajnie sprawdza się w korporacji
użytkownicy "cieszą się" gdy nacisną guzik i wysyła się masa maili. - ten ich błysk w oku !
Gratuluję, Pani Magdo :)

To już mamy dorobek: Pierwsza procedura korporacyjna. :)

Jako rewanż proszę z kolei o odniesienia się do dowolnego mojego wątku. Może Pani uda się rozruszać naszą grupę...

Ja zapowiadam kontynuację wątku "Kraina Informatycznej nicości". Mam już w zanadrzu parę wpisów, ale na razie mam na głowie Exc :)



Wyślij zaproszenie do