Cum am putea oare sa trimitem email-uri din Excel? Putem sa trimitem email-uri din Excel? De exemplu, cand apas butonul rosu in fisierul meu, sa notifice intreaga echipa de management intergalactic.
Raspunsul meu este da, poti. (cum zicea si tipa din reclama de la ING) 🙂
Radu, ce ti-a venit cu email-uri din Excel? avem Outlook pentru email-uri …
Curs Excel Avansat
Ca sa iti dau putin context, saptamana trecuta am inceput un curs de Excel de nivel avansat / Macro / VBA cu o companie din Oradea. Eu de fiecare data cand tin un curs cam invat ceva nou, atat din intrebari cat si din sugestii.
In acest curs am vorbit despre un fisier in care avem aprobari. Intrebarea era:
Radu, cum am putea face ca atunci cand cineva aproba un lucru (adica apasa pe un buton) toata lumea implicata in proces sa primeasca un email automat?
Lucru de altfel foarte util, mai ales in contextul in care procesul de aprobare la ei e pe mai multi pasi.
De ce avem nevoie
Bun, „hai sa intram in pita”, cum se mai zice la noi in Bihor.
Mai jos o sa pun cateva galeti de cod VBA, dar ca sa functioneze tine cont ca ai nevoie pe langa Excel si de Outlook cu o adresa de email configurata. Excel-ul se foloseste de Outlook pentru a trimite email-urile.
Pe langa asta, bine ar fi sa ai Outlook-ul pornit cand rulezi macro-ul.
Trimite un email static din Excel
Codul de mai jos poti sa il folosesti pentru a trimite un email care are atat continut cat si recipienti statici.
Sub Mail_small_Text_Outlook()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Set OutApp = CreateObject(„Outlook.Application”)
Set OutMail = OutApp.CreateItem(0)
strbody = „Domnilor” & vbNewLine & vbNewLine & _
„Avem probleme, am apasat butonul rosu.” & vbNewLine & _
„Treceti la treaba.” & vbNewLine
On Error Resume Next
With OutMail
.To = „vladimir@putin.ru”
.CC = „donald@trump.com”
.BCC = „”
.Subject = „Am apasat butonul”
.Body = strbody
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Hint: poti sa iei codul de mai sus si sa modifici doar ce e in limba romana + email-urile.
Trimite un email cu continut dinamic
Hai sa complicam putin lucrurile hai sa presupunem ca in acest email vrei sa luam in calcul valorile de pe coloana A si B. De exemplu, pe coloana A avem numele si pe B avem adresele de email.
Sub EmailDinamic()
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject(„Outlook.Application”)
On Error GoTo cleanup
For Each cell In Columns(„B”).Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like „?*@?*.?*” And _
LCase(Cells(cell.Row, „C”).Value) = „trimite” Then
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = cell.Value
.Subject = „Bai”
.Body = „Deci ” & Cells(cell.Row, „A”).Value _
& vbNewLine & vbNewLine & _
„Ai vazut cursul meu online? ” & _
„http://officeninja.teachable.com/p/ms-excel-ghid-practic-de-supravietuire”
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
End If
Next cell
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
Mai multe exemple
Eu am luat cateva exemple care mie mi s-au parut utile si usor de pus in practica. Excel + VBA poate insa sa faca mult mai mult, face chiar si de mancare, vezi mai multe aplicatii aici.
Foarte tare tipul asta apropo.
Download
Ia de aici fisierul pe care am lucrat eu, si care contine cele 2 macro-uri de mai sus.
Spune-mi si mie
Poate Probabil ca stii mai multe despre macro-uri si VBA decat mine, eu am cam fugit de programare. 🙂
Daca stii ceva interesant despre macro-uri in Excel care trimit email-uri te astept in zona de comentarii.
Disclaimer
Daca acum iti vin idei de inlocuire a sistemului de email marketing cu un fisier Excel, tine cont ca sunt sanse mari ca sa fii catalogat ca si spammer daca faci abuz si trimiti mii de email-uri pe ora prin Outlook.
Radu este fondatorul onLearn si autorul majoritatii articolelor de pe acest site. Cand nu scrie sau nu inregistreaza vreun tutorial e in sala de curs sau lucreaza pe proiecte de consultanta ca sa invete lucruri noi.
Ai o intrebare?
Daca ai ajuns pana aici cautand sectiunea de comentarii, sa stii ca aceasta nu exista :). Poti insa ca sa ne pui intrebari in partea de forum a site-ului, te asteptam acolo.
Interesant articolul mai ales ca ai postat si sursa (haterul din mine se sesizase). Mă așteptam totusi sa explici putin ce si cum, mai ales pentru începători, care, dpmdv, nu prea vor înțelege asa repede condiția pusă pe cell.Value si acel LCase. Merci!
Vali, nu m-am pus sa explic sintaxa macro-urilor pentru ca probabil ar fi iesit un mini-curs si nu un articol. 🙂
Un articol mai introductiv despre macro-uri poti vedea aici:
https://excelninja.ro/macro-uri-in-excel-introducere/
Comentariile sunt închise.