Trimiteți prin e-mail un registru de lucru Excel - Sfaturi Excel

Cuprins

Mulțumesc Katherine care a trimis întrebarea pentru sfatul Excel din această săptămână:

Vreau să plasez un buton de formular pe o foaie de lucru Excel care, atunci când faceți clic, va trimite aceeași foaie de lucru Excel cuiva.

Pentru a trimite întreaga carte la [email protected] cu un anumit subiect, ar trebui să utilizați această macrocomandă Excel.

Sub SendIt() Application.Dialogs(xlDialogSendMail).Show arg1:="[email protected]", _ arg2:="This goes in the subject line" End Sub

Există o pictogramă a barei de instrumente care vă permite să adăugați un buton de comandă. Urmați acești pași pentru ao adăuga la o bară de instrumente existentă:

  • Vizualizare> Bare de instrumente> Personalizare
  • Faceți clic pe fila de comenzi
  • În caseta Categorie, derulați în jos până la Control Toolbox
  • În caseta de comenzi, derulați în jos până la butonul de comandă
  • Faceți clic pe butonul de comandă și trageți-l în sus și fixați-l pe o bară de instrumente existentă
  • Renunțați la dialogul Personalizare apăsând Închidere

Acum că aveți pictograma butonului de comandă: faceți clic pe pictogramă. Trageți în foaia de lucru pentru a crea butonul. Faceți-l la fel de mare sau de mic cât doriți. Excel vă va cere să atribuiți o macro butonului. Alege SendIt. Faceți clic și trageți pentru a evidenția cuvântul Buton 1 de pe buton. Tastați ceva de genul „Trimiteți prin e-mail acest fișier”. Faceți clic în afara butonului și sunteți gata să plecați. Dacă vreodată trebuie să reatribuiți macrocomanda atașată la acel buton, faceți clic dreapta pe buton și alegeți atribui macrocomanda.

Ce se întâmplă dacă aveți o listă mare de informații pe care doriți să le distribuiți unui număr de utilizatori, dar doriți doar ca fiecare utilizator să își vadă propriile informații? Mai jos este o macro ușor mai complexă care va face acest lucru. În partea dreaptă este un exemplu de listă de vânzări pentru trei regiuni.

Înainte de a scrie macro-ul, configurați registrul de lucru după cum urmează:

  • Copiați foaia de lucru făcând clic dreapta pe fila date, alegeți „mutați sau copiați”, bifați „creați o copie”, OK. Redenumiți această nouă foaie de lucru „Raportați”. Puteți redenumi o foaie făcând clic dreapta pe filă, alegând „redenumiți”, apoi tastând Raport.
  • În fila raport, ștergeți toate rândurile de date. Păstrați doar titlurile și titlurile.
  • Introduceți o nouă foaie de lucru cu aceste coloane: Regiune, Destinatar. Pe această foaie de lucru, tastați numele fiecărei regiuni și utilizatorul care ar trebui să primească raportul. Redenumiți această foaie de lucru „Distribuție”.

Iată macro-ul. Liniile care încep cu apostrofe (') sunt comentarii concepute pentru a vă ajuta să urmăriți fluxul.

Public Sub SendItAll() ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Sort data by region Sheets("Data").Select Range("A1").CurrentRegion.Select Selection.Sort Key1:=Range("A2"), Header:=xlYes ' Process each record on Distribution Sheets("Distribution").Select FinalRow = Range("A15000").End(xlUp).Row For i = 2 To FinalRow Sheets("Distribution").Select RegionToGet = Range("A" & i).Value Recipient = Range("B" & i).Value ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Get records from Data Sheets("Data").Select Range("A1").CurrentRegion.Select ' Turn on AutoFilter, if it is not on If ActiveSheet.AutoFilterMode = False Then Selection.AutoFilter ' Filter the data to just this region Selection.AutoFilter Field:=1, Criteria1:=RegionToGet ' Select only the visible cells and copy to Report Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Destination:=Sheets("Report").Range("A1") ' Turn off the Autofilter Selection.AutoFilter ' Copy the Report sheet to a new book and e-mail Sheets("Report").Copy Application.Dialogs(xlDialogSendMail).Show _ arg1:=Recipient, _ arg2:="Report for " & RegionToGet ActiveWorkbook.Close SaveChanges:=False Next i End Sub

Articole interesante...