Note: The other languages of the website are Google-translated. Back to English

Hoe stuur ik een e-mailherinnering of -melding als de werkmap wordt bijgewerkt in Excel?

In sommige gevallen moet u mogelijk een e-mailmelding naar een opgegeven ontvanger sturen als er gegevens zijn bijgewerkt in de werkmap die u hebt verzonden. Dit artikel laat je de methode zien om dit te bereiken.

Stuur een e-mailherinnering of melding als de werkmap is bijgewerkt met VBA-code


Stuur een e-mailherinnering of melding als de werkmap is bijgewerkt met VBA-code


Ga als volgt te werk om een ​​e-mailherinnering of melding te verzenden als de werkmap is bijgewerkt.

1. Open in de werkmap een gespecificeerd werkblad dat u een e-mailmelding stuurt op basis van de bijgewerkte gegevens erin.

2. Klik met de rechtermuisknop op de bladtab en selecteer Bekijk code vanuit het rechtsklikmenu. Zie screenshot:

2. In de Microsoft Visual Basic voor toepassingen venster, kopieer en plak de volgende code in het codevenster. Zie screenshot:

VBA-code: stuur een e-mailherinnering of melding als de werkmap is bijgewerkt

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    Dim xYesOrNo As Integer
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xYesOrNo = MsgBox("Want to attach updated workbook in email?", vbInformation + vbYesNo, "KuTools For Excel")
    If xYesOrNo = 6 Then ActiveWorkbook.Save
    If xYesOrNo = 6 Then xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .cc = ""
        .Subject = "email notification test"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        If xYesOrNo = 6 Then .Attachments.Add xName
        .Display
    End With
    xMailItem = Nothing
    xOutApp = Nothing
End Sub

Opmerking:: Vervang het e-mailadres door het e-mailadres van de ontvanger in de rij .To = "E-mailadres". En verander de Cc-, Subject- en body-velden in de VBA-code zoals je nodig hebt.

3. druk de anders + Q toetsen om de Microsoft Visual Basic voor toepassingen venster.

4. Na het bewerken van een cel in het werkblad, een Kutools for Excel dialoogvenster verschijnt zoals onderstaand screenshot. Als u de bijgewerkte werkmap aan de e-mail wilt toevoegen, klikt u op de Ja knop. Als dit niet het geval is, klikt u op het Nee knop.

5. Vervolgens wordt automatisch een e-mail gemaakt met of zonder de bijgewerkte werkmap als bijlage. En alle opgegeven velden worden ook vermeld in de e-mail. Klik op het Verstuur knop om het te verzenden.

Opmerking:: De VBA-code werkt alleen als u Outlook als uw e-mailprogramma gebruikt.


Gerelateerde artikelen:


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (12)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Als iemand zich op deze pagina afvroeg hoe je een e-mail vanuit Excel kunt verzenden met CDO, heb ik een Google-document samengesteld - Hoe e-mail verzenden vanuit Excel met Gmail (https://docs.google.com/document/d/1u5VLzCApU3k4-9Vp9LEfqyFZ6u9tAY0avNPYN_1FsN4/edit?usp=sharing) met code op GitHub gist (https://gist.github.com/bergerjac/7355d4e528fa6c64a02dc494f3d241a1)
Deze opmerking is gemaakt door de moderator op de site
Kan ik hierin meer dan een persoon CC? Bedankt
Deze opmerking is gemaakt door de moderator op de site
Hallo Leah,
Voer de e-mailadressen rechtstreeks in de regel .cc="" in en scheid ze met een puntkomma, zoals .cc = "AAA@gmail.com;BBB@gmail.com"
Deze opmerking is gemaakt door de moderator op de site
Ik heb de code gekopieerd en geplakt precies zoals het is van deze pagina, maar wanneer ik een wijziging aanbreng in mijn document, krijg ik het bericht "Syntax Error" en deze regel markeert: Dim xOutApp As Object. Alle hulp zou op prijs worden gesteld.
Deze opmerking is gemaakt door de moderator op de site
Hallo Judy,
Zou je de Excel-versie kunnen geven die je gebruikt? Bedankt voor je reactie.
Deze opmerking is gemaakt door de moderator op de site
Hallo daar, De code werkt geweldig. Wanneer een cel echter onder het drempelpunt komt via een macrobewerking die de lagere waarde kopieert en plakt in de aangewezen cel, lijkt de code niet te worden geactiveerd.

Ik zou deze code ook op verschillende cellen willen toepassen. Kan ik de code meerdere keren kopiëren en plakken en elke gekopieerde versie aanpassen aan de behoeften van elke cel? Is er een betere manier om dat te doen. Ik kan dat niet bedenken. Dank u!
Deze opmerking is gemaakt door de moderator op de site
Sorry, ik heb dit in het verkeerde artikel gepost. Ik zal in het juiste artikel posten
Deze opmerking is gemaakt door de moderator op de site
Toen ik probeerde iets in een cel te wijzigen, werd in een bericht om Outlook-e-mailconfiguratie gevraagd en bleef het maar om mijn wachtwoord vragen.
Deze opmerking is gemaakt door de moderator op de site
Hallo MJ,
Welke Excel-versie gebruik je? Kun je een screenshot van de prompt geven?
Deze opmerking is gemaakt door de moderator op de site
Voor mij wordt de code keer op keer uitgevoerd, het is als een oneindige lus. Ik sluit de e-mail, er wordt opnieuw gevraagd om het te verzenden...
Deze opmerking is gemaakt door de moderator op de site
alsjeblieft, ik ben een beetje in de war, maar waar in de code wordt het blad gedetecteerd dat wordt gewijzigd / bijgewerkt?
ik probeer een code te schrijven waarbij de tabel op een bepaald blad wordt verzonden wanneer de tabel wordt gewijzigd (of meer specifiek wanneer rijen worden toegevoegd)
dank je!
Deze opmerking is gemaakt door de moderator op de site
Hoi,
De code in het bericht detecteert alle cellen in het hele werkblad op basis van de eerste regel van "Private Sub Worksheet_Change (ByVal Target As Range)".
Als u een e-mail wilt verzenden met een bepaalde tabel wanneer deze is gewijzigd, kunt u de volgende VBA proberen.
Opmerking:: verander alstublieft "Tabel1" in uw eigen tabelnaam.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2022/5/27
    Dim xYesOrNo As Integer
    Dim xTableName As String
    Dim xTableRg As Range
    Dim I, J As Long
    Dim xEmailBody As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    
    xTableName = "Table1" 'The name of the table you will send when it is modified
    Set xTableRg = ActiveSheet.ListObjects(xTableName).Range
    If Intersect(Target, xTableRg) Is Nothing Then Exit Sub

    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    For I = 1 To xTableRg.Rows.Count
        For J = 1 To xTableRg.Columns.Count
            xEmailBody = xEmailBody & "  " & xTableRg.Cells(I, J).Value
        Next
        xEmailBody = xEmailBody & vbNewLine
    Next
    xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
    With xMailOut
        .Subject = "Test"
        .To = "XXX@163.com"
        .Body = xEmailBody
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
End Sub
Er zijn nog geen reacties geplaatst
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0  Personages
Voorgestelde locaties