E-mail een Excel-werkmap - Excel-tips

Inhoudsopgave

Met dank aan Katherine die de vraag heeft gestuurd voor de Excel-tip van deze week:

Ik wil een formulierknop op een Excel-werkblad plaatsen dat, wanneer erop wordt geklikt, hetzelfde Excel-werkblad naar iemand zal e-mailen.

Om het hele boek met een bepaalde onderwerpregel naar [email protected] te sturen, gebruikt u deze Excel-macro.

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

Er is een werkbalkpictogram waarmee u een opdrachtknop kunt toevoegen. Volg deze stappen om het toe te voegen aan een bestaande werkbalk:

  • Beeld> Werkbalken> Aanpassen
  • Klik op het tabblad met opdrachten
  • Blader in het vak Categorie omlaag naar Control Toolbox
  • Scrol in het opdrachtenvak omlaag naar Command-knop
  • Klik op de opdrachtknop en sleep deze omhoog en zet hem neer op een bestaande werkbalk
  • Sluit het dialoogvenster Aanpassen af ​​door op Sluiten te drukken

Nu u het pictogram van de opdrachtknop hebt: Klik op het pictogram. Sleep in uw werkblad om de knop te maken. Maak het zo groot of zo klein als je wilt. Excel zal u vragen om een ​​macro aan de knop toe te wijzen. Kies SendIt. Klik en sleep om het woord Button 1 op de knop te markeren. Typ zoiets als "Dit bestand e-mailen". Klik buiten de knop en u bent klaar om te gaan. Als u de macro die aan die knop is gekoppeld ooit opnieuw moet toewijzen, klikt u met de rechtermuisknop op de knop en kiest u macro toewijzen.

Wat als u een grote lijst met informatie heeft die u onder een aantal gebruikers wilt verspreiden, maar u wilt alleen dat elke gebruiker zijn eigen informatie ziet? Hieronder staat een iets complexere macro die dit zal doen. Aan de rechterkant is een voorbeeldlijst met verkopen voor drie regio's.

Voordat u de macro schrijft, stelt u de werkmap als volgt in:

  • Kopieer het gegevenswerkblad door met de rechtermuisknop op de gegevenstab te klikken, kies "verplaatsen of kopiëren", vink "een kopie aan" aan, OK. Hernoem dit nieuwe werkblad "Rapport". U kunt de naam van een blad wijzigen door met de rechtermuisknop op het tabblad te klikken, "hernoemen" te kiezen en vervolgens Rapport te typen.
  • Verwijder alle gegevensrijen op het rapporttabblad. Bewaar alleen de koppen en titels.
  • Voeg een nieuw werkblad in met deze kolommen: Regio, Ontvanger. Typ op dit werkblad de naam van elke regio en de gebruiker die het rapport moet ontvangen. Hernoem dit werkblad "Distributie".

Hier is de macro. Regels die beginnen met apostrofs (') zijn opmerkingen die zijn ontworpen om u te helpen de stroom te volgen.

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

Interessante artikelen...