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

Hoe e-mail verzenden als de vervaldatum is bereikt in Excel?

Zoals te zien is in de onderstaande schermafbeelding, wordt er een e-mail verzonden naar de opgegeven ontvanger in kolom A als de vervaldatum in kolom C kleiner is dan of gelijk is aan 7 dagen (de huidige datum is bijvoorbeeld 2017/9/13). gespecificeerde inhoud in kolom B wordt weergegeven in de hoofdtekst van de e-mail. Hoe zou je kunnen doen om het te bereiken? Dit artikel bevat een VBA-code om u te helpen deze taak uit te voeren.

Stuur een e-mail als de vervaldatum is bereikt met de VBA-code


Stuur een e-mail als de vervaldatum is bereikt met de VBA-code

Ga als volgt te werk om een ​​e-mailherinnering te sturen als de vervaldatum in Excel is bereikt.

1. druk de anders + F11 toetsen tegelijkertijd om het Microsoft Visual Basic voor toepassingen venster.

2. In de Microsoft Visual Basic voor toepassingen venster, klik dan Invoegen > Module. Kopieer en plak vervolgens de onderstaande VBA-code in het modulevenster.

VBA-code: stuur een e-mail als de vervaldatum is gesloten in Excel

Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
    Dim xRgDate As Range
    Dim xRgSend As Range
    Dim xRgText As Range
    Dim xRgDone As Range
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xLastRow As Long
    Dim vbCrLf As String
    Dim xMailBody As String
    Dim xRgDateVal As String
    Dim xRgSendVal As String
    Dim xMailSubject As String
    Dim i As Long
    On Error Resume Next
    Set xRgDate = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
    If xRgDate Is Nothing Then Exit Sub
    Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
    If xRgSend Is Nothing Then Exit Sub
    Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
    If xRgText Is Nothing Then Exit Sub
    xLastRow = xRgDate.Rows.count
    Set xRgDate = xRgDate(1)
    Set xRgSend = xRgSend(1)
    Set xRgText = xRgText(1)
    Set xOutApp = CreateObject("Outlook.Application")
    For i = 1 To xLastRow
        xRgDateVal = ""
        xRgDateVal = xRgDate.Offset(i - 1).Value
        If xRgDateVal <> "" Then
        If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
            xRgSendVal = xRgSend.Offset(i - 1).Value
            xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
            vbCrLf = "<br><br>"
            xMailBody = "<HTML><BODY>"
            xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
            xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
            xMailBody = xMailBody & "</BODY></HTML>"
            Set xMailItem = xOutApp.CreateItem(0)
            With xMailItem
                .Subject = xMailSubject
                .To = xRgSendVal
                .HTMLBody = xMailBody
                .Display
                '.Send
            End With
            Set xMailItem = Nothing
        End If
    End If
    Next
    Set xOutApp = Nothing
End Sub

Opmerkingen: De lijn Als CDate (xRgDateVal) - Datum <= 7 En CDate (xRgDateVal) - Datum> 0 Dan betekent in de VBA-code dat de vervaldatum groter moet zijn dan 1 dag en kleiner dan of gelijk aan 7 dagen. U kunt het naar behoefte wijzigen.

3. druk op het F5-toets om de code uit te voeren. Bij de eerste die opduikt Kutools for Excel dialoogvenster, selecteer het kolombereik van de vervaldatum en klik vervolgens op het OK knop. Zie screenshot:

4. Dan de tweede Kutools for Excel dialoogvenster verschijnt, selecteer het corresponderende kolombereik dat de e-mailadressen van de ontvangers bevat en klik op het OK knop. Zie screenshot:

5. In de laatste Kutools for Excel dialoogvenster, selecteer de inhoud die u in de hoofdtekst van de e-mail wilt weergeven en klik vervolgens op het OK knop.

Vervolgens wordt automatisch een e-mail gemaakt met de opgegeven ontvanger, onderwerp en hoofdtekst als de vervaldatum in kolom C minder dan of gelijk is aan 7 dagen. Klik op het Verzenden knop om de e-mail te verzenden.

Opmerkingen:

1. Elke aangemaakte e-mail komt overeen met een vervaldatum. Als er bijvoorbeeld drie vervaldatums aan de criteria voldoen, worden automatisch drie e-mailberichten gemaakt.

2. Deze code wordt niet geactiveerd als er geen datums zijn die aan de criteria voldoen.

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


Gerelateerde artikelen:


De beste tools voor kantoorproductiviteit

Kutools for 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-2021 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Volledige functies Gratis proefperiode van 30 dagen. 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 honderden muisklikken voor u elke dag!
officetab onderkant
Heb je vragen? Stel ze hier. (124)
Rated 4.5 uit 5 · 1 ratings
Deze opmerking is gemaakt door de moderator op de site
Dank je wel voor het delen.


Hoe zou u Cc-invoer of meerdere ontvangers toevoegen?
Deze opmerking is gemaakt door de moderator op de site
Hallo Brandon,

Sorry dat ik op je bericht reageer zonder antwoord, maar kon je de VBA-code krijgen om een ​​e-mail te sturen?
Deze opmerking is gemaakt door de moderator op de site
Ik heb je VBA-code gebruikt voor het verzenden van e-mails op basis van een celwaarde, maar het werkt niet.
Alles tot stap 5 werkt, maar er wordt geen e-mail verzonden. Kan iemand mij hierbij helpen?
Deze opmerking is gemaakt door de moderator op de site
Me viene muy bien gracias por el aporte, solo me falta como puedo hacerlo automaticamente sin necesidad de hacerlo manualmente el envio del correo.
Deze opmerking is gemaakt door de moderator op de site
Deze code bevroor mijn Excel-programma toen ik het uitvoerde. Is het geheugenintensief?
Deze opmerking is gemaakt door de moderator op de site
Hallo robert
Het door u genoemde probleem doet zich in mijn geval niet voor. Mag ik uw Office-versie?
Deze opmerking is gemaakt door de moderator op de site
kunnen we de details één keer invoeren en kunnen de e-mails automatisch worden verzonden, in plaats van altijd de kolommen te moeten selecteren?
Deze opmerking is gemaakt door de moderator op de site
Hallo Diyaa,
Als u de kolommen niet handmatig wilt selecteren, past u de onderstaande VBA-code toe.
Opmerking: u hoeft alleen de kolom met vervaldatums te selecteren nadat u de code heeft toegepast.

Openbare sub CheckAndSendMail()
'Bijgewerkt door' Extendoffice 2017 / 9/ 14
Dim xRgDate als bereik
Dim xRgSend als bereik
Dim xRgText als bereik
Dim xRgGereed als bereik
Dim xOutApp als object
Dim xMailItem als object
Dim xLaatste Rij Zo Lang
Dim vbCrLf als string
Dim xMailBody als tekenreeks
Dim xRgDateVal als string
Dim xRgSendVal als string
Dim xMailOnderwerp als tekenreeks
Dim ik zo lang
On Error Resume Next
Set xRgDate = Application.InputBox ("Selecteer de vervaldatumkolom:", "KuTools For Excel", , , , , , 8)
Als xRgDate niets is, sluit dan Sub af
xLastRow = xRgDate.Rijen.Aantal
Stel xRgDatum = xRgDatum(1) in
Stel xRgSend = xRgSend(1) in
Stel xRgText = xRgText(1) in
Stel xOutApp = CreateObject ("Outlook.Application") in
Voor I = 1 Tot xLaatste Rij
xRgDateVal = xRgDate.Offset(I - 1).Waarde
Als CDate(xRgDateVal) - Datum <= 7 en CDate(xRgDateVal) - Datum > 0 Dan
xRgSendVal = xRgSend.Offset(I - 1).Waarde
xMailSubject = xRgText.Offset(I - 1).Waarde & "op" & xRgDateVal
vbCrLf = "

"
xMailBody = "Hallo daar" & vbNewLine & vbNewLine & _
"Dit is regel 1" & vbNewLine & _
"Dit is lijn 2"
Stel xMailItem = xOutApp.CreateItem(0) in
Met xMailItem
.To = "E-mailadres"
.CC = ""
.BCC = ""
.Subject = "verzenden via celwaardetest"
.Body = xMailBody
.Weergeven 'of gebruik .Verzenden'
Eindigt met
Stel xMailItem = Niets in
End If
Volgende
Stel xOutApp = Niets in
End Sub
Deze opmerking is gemaakt door de moderator op de site
Hallo,
Ik ben ook zo'n beetje een beginner en ik zou nog een vraag willen stellen over je geweldige Sub.

Hoe kan ik alleen een e-mail sturen als een bepaald e-mailadres in de betreffende cel staat?

Ik heb dit nodig, omdat ik in mijn Excel-tool enkele knoppen heb geïmplementeerd voor elke persoon die een herinnering nodig heeft.

Alvast heel erg bedankt!!

Thomas
Deze opmerking is gemaakt door de moderator op de site
Hallo Thomas,
We hebben een artikel geplaatst "Hoe e-mail verzenden naar e-mailadressen die zijn opgegeven in cellen in Excel?"
https://www.extendoffice.com/documents/excel/4717-excel-macro-send-email-to-address-in-cells.html
Misschien vind je jouw oplossing in dit artikel.
Deze opmerking is gemaakt door de moderator op de site
Ik heb dit nodig om in alle werkbladen in een werkmap te werken. De toekomstige datum wordt handmatig in dezelfde cel op elk blad ingevoerd en er worden dagelijks nieuwe bladen gemaakt. Ik heb ook de naam van het werkblad in de e-mail nodig, zodat ik weet welk blad moet worden gemaakt
Deze opmerking is gemaakt door de moderator op de site
Sorry kan je hier niet mee helpen.
Welkom bij het plaatsen van een vraag over Excel op ons forum: https://www.extendoffice.com/forum.html. Je krijgt meer Excel-ondersteuning van onze professionele of andere Excel-fans.
Deze opmerking is gemaakt door de moderator op de site
Krijg het niet werkend. Het gebruik van Office 365, dus Outlook en Excel zouden strak genoeg moeten zijn. Zoals in de post van "schou" 4 maanden geleden, het werkt tot stap 5 maar dan niets.
Een oplossing hiervoor?
Deze opmerking is gemaakt door de moderator op de site
Ik heb Excel om de e-mail te verzenden, maar kan ik dit zo instellen dat het elke keer dat ik Excel open een e-mail verzendt in plaats van elke keer de kolommen te selecteren.

Ik heb een werkmap met 24 pagina's, dus ik wil automatisch e-mailen wanneer de werkmap wordt geopend.


Veel dank.
Deze opmerking is gemaakt door de moderator op de site
Hoi,
Bedoelt u automatisch de vervaldatum in de werkmap controleren en e-mail verzenden wanneer de werkmap wordt geopend?
Deze opmerking is gemaakt door de moderator op de site
Hallo jongens,


Macro is geweldig, maar ik zou iets willen vragen - als je iemand op de lijst hebt staan ​​zonder enige datum, hoe kun je de vba-code aanpassen om die man uit te sluiten? Nu genereert de code e-mails, zelfs voor de jongens zonder datum.


Bedankt!
Deze opmerking is gemaakt door de moderator op de site
Hallo Lvan,
De code is bijgewerkt met het oplossen van het probleem, probeer het alstublieft. Bedankt voor je reactie.
Deze opmerking is gemaakt door de moderator op de site
Hallo, Mail genereert automatisch kolommen met lege gegevens. Ik zou ook graag de bijgewerkte code willen hebben.
Deze opmerking is gemaakt door de moderator op de site
Hartelijk dank voor de bijdrage. Ik zou graag willen weten hoe ik vaste kolomselectie kan gebruiken zonder Kutools te gebruiken? dat wil zeggen, standaardkolommen met datums, ontvangstbewijzen en waarschuwingen laten staan?
Deze opmerking is gemaakt door de moderator op de site
Goede dag,
De onderstaande VBA-code kan u helpen. Probeer het alsjeblieft.

Openbare sub CheckAndSendMail()
'Bijgewerkt door' Extendoffice 2018 / 11/ 22
Dim xRgDate als bereik
Dim xRgSend als bereik
Dim xRgText als bereik
Dim xRgGereed als bereik
Dim xOutApp als object
Dim xMailItem als object
Dim xLaatste Rij Zo Lang
Dim vbCrLf als string
Dim xMailBody als tekenreeks
Dim xRgDateVal als string
Dim xRgSendVal als string
Dim xMailOnderwerp als tekenreeks
Dim ik zo lang
On Error Resume Next
Set xRgDate = Range("C2:C4") 'Gelieve te verwijzen naar de vervaldatum kolom
Als xRgDate niets is, sluit dan Sub af
Set xRgSend = Range("A2:A4") 'Gelieve te verwijzen naar de ontvangers?e-mail kolom
Als xRgSend niets is, sluit dan Sub af
Set xRgText = Range("B2:B4") Voer de kolom met herinnerde inhoud in uw e-mail in
Als xRgText niets is, sluit dan Sub af
xLastRow = xRgDate.Rijen.telling
Stel xRgDatum = xRgDatum(1) in
Stel xRgSend = xRgSend(1) in
Stel xRgText = xRgText(1) in
Stel xOutApp = CreateObject ("Outlook.Application") in
Voor i = 1 tot xLaatste rij
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Waarde
Als xRgDateVal <> "" Dan
Als CDate(xRgDateVal) - Datum <= 7 en CDate(xRgDateVal) - Datum > 0 Dan
xRgSendVal = xRgSend.Offset(i - 1).Waarde
xMailSubject = xRgText.Offset(i - 1).Waarde & "op" & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "Beste" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Tekst: " & xRgText.Offset (i - 1). Waarde & vbCrLf
xMailBody = xMailBody & ""
Stel xMailItem = xOutApp.CreateItem(0) in
Met xMailItem
.Onderwerp = xMailOnderwerp
.To = xRgSendVal
.HTMLBody = xMailBody
.Scherm
'.Versturen
Eindigt met
Stel xMailItem = Niets in
End If
End If
Volgende
Stel xOutApp = Niets in
End Sub
Deze opmerking is gemaakt door de moderator op de site
Beste Crystal,

Bedankt voor het delen.

Ik ben een beginner en ik heb een probleem met code.

xMailBody = ""
xMailBody = xMailBody & "Beste" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Tekst: " & xRgText.Offset (i - 1). Waarde & vbCrLf
xMailBody = xMailBody & ""

De tekst is niet naar nieuwe regel gaan.
Kunt u alstublieft helpen.

Bedankt
Deze opmerking is gemaakt door de moderator op de site
Nientje,
U moet de regel toevoegen vbCrLf = " "voor de kou.
Zoals:
vbCrLf = " "
xMailBody = ""
xMailBody = xMailBody & "Beste" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Tekst: " & xRgText.Offset (i - 1). Waarde & vbCrLf
xMailBody = xMailBody & ""
Deze opmerking is gemaakt door de moderator op de site
Beste Crystal, Kunnen bij het selecteren van de datumkolom meerdere cellen in verschillende kolommen worden geselecteerd?
Deze opmerking is gemaakt door de moderator op de site
Hallo,
Mr. Crystal, in uw laatste gesprek met Mr. Ivan, vroeg hij u om de code om elke keer dat de spreadsheet wordt geopend een e-mail te sturen in plaats van elke keer de codes in te voeren.
Ik heb dezelfde code nodig, dezelfde situatie, kunnen jullie me alsjeblieft helpen?
Deze opmerking is gemaakt door de moderator op de site
Correct, het was niet met Mr. Ivan, maar met Mr. Austin.
Dank je.
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik gebruik een aangepaste versie van deze code en ik ben vrij nieuw in VBA. Ik was benieuwd of er een mogelijkheid was voor wanneer de e-mail zou worden verzonden, dat de macro een X zou kunnen markeren, of als iemand Voltooid had, dat een e-mail niet zou worden verzonden. Ik hoop dat dit allemaal logisch is. Alle hulp wordt zeer op prijs gesteld.

Weinig achtergrondinformatie, ik gebruik deze tool om een ​​vervaldatumcontrole uit te voeren op 30 dagen, 60 dagen en te laat. Ik wil dat 1 e-mail na 30 dagen de deur uit gaat, 1 na 60 dagen en dan ook nog. Ik voer dit uit van een VB-script dat ik heb geschreven, zodat ik het dagelijks zou kunnen automatiseren. Bedankt!
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik gebruik een aangepaste versie van deze code en ik ben vrij nieuw in VBA. Ik was benieuwd of er een mogelijkheid was voor wanneer de e-mail zou worden verzonden, dat de macro een X zou kunnen markeren, of als iemand Voltooid had, dat een e-mail niet zou worden verzonden. Ik hoop dat dit allemaal logisch is. Alle hulp wordt zeer op prijs gesteld. Weinig achtergrondinformatie, ik gebruik deze tool om een ​​vervaldatumcontrole uit te voeren op 30 dagen, 60 dagen en te laat. Ik wil dat 1 e-mail na 30 dagen de deur uit gaat, 1 na 60 dagen en dan ook nog. Ik voer dit uit van een VB-script dat ik heb geschreven, zodat ik het dagelijks zou kunnen automatiseren. Bedankt!
Deze opmerking is gemaakt door de moderator op de site
Hallo meneer,

Dit is erg handig. Ik heb nog 2 verbeteringen nodig in dezelfde codes. Ik moet elke keer op de verzendknop klikken, het is prima zolang ik 10 e-mails moet verzenden, wat als ik> 25 e-mails op één dag moet verzenden. Geef me dus een code om automatisch een e-mail te verzenden bij het selecteren van Vervaldatum, Ontvanger, Onderwerp enz.

Geef me ook de code om ook de "CC"-optie toe te voegen


Bedankt

Sirene P
Deze opmerking is gemaakt door de moderator op de site
Goede dag,
Probeer de onderstaande VBA-code, ik hoop dat ik je kan helpen. Bedankt voor het commentaar.

Openbare sub CheckAndSendMail()
'Bijgewerkt door' Extendoffice 2018 / 11/ 22
Dim xRgDate als bereik
Dim xRgSend als bereik
Dim xRgText als bereik
Dim xRgGereed als bereik
Dim xOutApp als object
Dim xMailItem als object
Dim xLaatste Rij Zo Lang
Dim vbCrLf als string
Dim xMailBody als tekenreeks
Dim xRgDateVal als string
Dim xRgSendVal als string
Dim xMailOnderwerp als tekenreeks
Dim ik zo lang
On Error Resume Next
Set xRgDate = Application.InputBox ("Selecteer de vervaldatumkolom:", "KuTools For Excel", , , , , , 8)
Als xRgDate niets is, sluit dan Sub af
Set xRgSend = Application.InputBox ("Selecteer de ontvangers? e-mailkolom:", "KuTools For Excel", , , , , , 8)
Als xRgSend niets is, sluit dan Sub af
Set xRgCC = Application.InputBox("Selecteer de kolom CC-ontvangers?e-mail:", "KuTools For Excel", , , , , , 8)
Als xRgCC niets is, sluit dan Sub af
Set xRgText = Application.InputBox ("Selecteer de kolom met herinnerde inhoud in uw e-mail:", "KuTools For Excel", , , , , , 8)
Als xRgText niets is, sluit dan Sub af
xLastRow = xRgDate.Rijen.Aantal
Stel xRgDatum = xRgDatum(1) in
Stel xRgSend = xRgSend(1) in
Stel xRgCC = xRgCC(1) in
Stel xRgText = xRgText(1) in
Stel xOutApp = CreateObject ("Outlook.Application") in
Voor i = 1 tot xLaatste rij
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Waarde
Als xRgDateVal <> "" Dan
Als CDate(xRgDateVal) - Datum <= 7 en CDate(xRgDateVal) - Datum > 0 Dan
xRgSendVal = xRgSend.Offset(i - 1).Waarde
xRgCCVal = xRgCC.Offset(i - 1).Waarde
xMailSubject = xRgText.Offset(i - 1).Waarde & "op" & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "Beste" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Tekst: " & xRgText.Offset (i - 1). Waarde & vbCrLf
xMailBody = xMailBody & ""
Stel xMailItem = xOutApp.CreateItem(0) in
Met xMailItem
.Onderwerp = xMailOnderwerp
.To = xRgSendVal
.Cc = xRgCCVal
.HTMLBody = xMailBody
.Versturen
Eindigt met
Stel xMailItem = Niets in
End If
End If
Volgende
Stel xOutApp = Niets in
End Sub
Deze opmerking is gemaakt door de moderator op de site
Hallo Kristal,

Bedankt voor de codes, het is erg nuttig. Maar hoe kan ik de code laten werken als ik outlook.office.com gebruik?
Deze opmerking is gemaakt door de moderator op de site
in de body wil ik de kolom a,b,c waarde in een tabelformaat, zoals de verlopen datum die eenmaal is bereikt in de bodykolom ik wil a,b,c cellen details in tabelformaat afdrukken
Deze opmerking is gemaakt door de moderator op de site
Hallo Dinesh BS,
Sorry kan je daar niet mee helpen. Welkom bij het plaatsen van een vraag op ons forum: https://www.extendoffice.com/forum.html.
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik ben nieuw in VBA. Is er een manier om dit programma automatisch te laten starten wanneer het bestand wordt geopend?
Deze opmerking is gemaakt door de moderator op de site
Hallo L Echols,
Om de code automatisch uit te voeren wanneer het bestand wordt geopend, dubbelklikt u om het ThisWorkbook-codevenster te openen (bevindt zich aan de linkerkant van het Microsoft Visual Basic for Applications-venster), selecteert u Werkmap in de eerste vervolgkeuzelijst en kopieert u vervolgens de boven VBA-code (behalve de eerste en de laatste regel) in het codevenster en plak tussen de gegeven twee regels. Zie de onderstaande bijgevoegde screenshot:
Deze opmerking is gemaakt door de moderator op de site
Dit is geweldig. Ik vroeg me af of er een manier is om de code uit te voeren zonder elke keer de KuTools-waarden te hoeven selecteren? Ter verduidelijking heb ik deze code ingevoerd en nu, wanneer ik de werkmap open, moet ik nog steeds dezelfde kolommen markeren. Is er een manier om de code in te voeren om elke keer dezelfde kolommen te controleren - zolang er geen bewerkingen in de werkmap zijn aangebracht - om de controle uit te voeren en een e-mail te formuleren op basis van die controle? Dank u bij voorbaat.
Deze opmerking is gemaakt door de moderator op de site
Hallo Danny,
Probeer de onderstaande code en verander de bereiken als je nodig hebt.

Openbare sub CheckAndSendMail()
'Bijgewerkt door' Extendoffice 2019 / 5/ 17
Dim xRgDate als bereik
Dim xRgSend als bereik
Dim xRgText als bereik
Dim xRgGereed als bereik
Dim xOutApp als object
Dim xMailItem als object
Dim xLaatste Rij Zo Lang
Dim vbCrLf als string
Dim xMailBody als tekenreeks
Dim xRgDateVal als string
Dim xRgSendVal als string
Dim xMailOnderwerp als tekenreeks
Dim ik zo lang
On Error Resume Next
Stel xRgDate = Bereik ("C2: C4") in
Als xRgDate niets is, sluit dan Sub af
Stel xRgSend = Bereik ("A2: A4") in
Als xRgSend niets is, sluit dan Sub af
Stel xRgText = Bereik ("B2:B4") in
Als xRgText niets is, sluit dan Sub af
xLastRow = xRgDate.Rijen.Aantal
Stel xRgDatum = xRgDatum(1) in
Stel xRgSend = xRgSend(1) in
Stel xRgText = xRgText(1) in
Stel xOutApp = CreateObject ("Outlook.Application") in
Voor i = 1 tot xLaatste rij
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Waarde
Als xRgDateVal <> "" Dan
Als CDate(xRgDateVal) - Datum <= 7 en CDate(xRgDateVal) - Datum > 0 Dan
xRgSendVal = xRgSend.Offset(i - 1).Waarde
xMailSubject = xRgText.Offset(i - 1).Waarde & "op" & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "Beste" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Tekst: " & xRgText.Offset (i - 1). Waarde & vbCrLf
xMailBody = xMailBody & ""
Stel xMailItem = xOutApp.CreateItem(0) in
Met xMailItem
.Onderwerp = xMailOnderwerp
.To = xRgSendVal
.HTMLBody = xMailBody
.Scherm
'.Versturen
Eindigt met
Stel xMailItem = Niets in
End If
End If
Volgende
Stel xOutApp = Niets in
End Sub
Deze opmerking is gemaakt door de moderator op de site
Dit is geweldig. Ik vroeg me af of er een manier is om de code uit te voeren zonder elke keer de KuTools-waarden te hoeven selecteren? Ter verduidelijking heb ik deze code ingevoerd en nu, wanneer ik de werkmap open, moet ik nog steeds dezelfde kolommen markeren. Is er een manier om de code in te voeren om elke keer dezelfde kolommen te controleren - zolang er geen bewerkingen in de werkmap zijn aangebracht - om de controle uit te voeren en een e-mail te formuleren op basis van die controle? Dank u bij voorbaat.
Deze opmerking is gemaakt door de moderator op de site
Hallo Kristal,
Ik heb een probleem met het automatisch verzenden van e-mail zodra het bestand is geopend. Ik heb bijvoorbeeld alle informatie over de vervaldatum op Blad1. Als ik het bestand echter opsla en sluit terwijl ik aan Blad2 werkte, zijn de waarden voor het verzenden van e-mails zodra ik het bestand open, gebaseerd op Blad2 en niet op Blad1. Ik heb alleen module toegevoegd op Blad1 en ThisWorkbook. Ik denk dat het hebben van dezelfde vba op ThisWorkbook ervoor zorgt dat automatische e-mails worden verzonden op elk blad dat ik op dit moment open heb staan. Hoe kan ik de VBA beperken om waarde uit een specifiek blad te halen en ook e-mails verzenden wanneer het bestand wordt geopend? Bij voorbaat hartelijk dank voor uw hulp!
Deze opmerking is gemaakt door de moderator op de site
Ik ben nieuw in VBA. Is er een manier om dit programma automatisch uit te voeren wanneer het bestand wordt geopend?
Deze opmerking is gemaakt door de moderator op de site
Ja, met


Private Sub Workbook_Open ()
*Voer hier de code in*
End Sub
Deze opmerking is gemaakt door de moderator op de site
Hoi,

Ik heb een vraag

Als ik een vooraf bepaald cellenbereik wil selecteren, hoe kan ik dan de code in dit deel wijzigen:

xLastRow = xRgDate.Rijen.Aantal
Stel xRgDatum = xRgDatum(1) in

Automatisch de cellen instellen?

Dank je :)
Deze opmerking is gemaakt door de moderator op de site
Hoi,
Als u niet elke keer handmatig een bereik wilt selecteren bij het toepassen van de code, gebruik dan de onderstaande code.

Openbare sub CheckAndSendMail()
'Bijgewerkt door' Extendoffice 2019 / 12/ 10
Dim xRgDate als bereik
Dim xRgSend als bereik
Dim xRgText als bereik
Dim xRgGereed als bereik
Dim xOutApp als object
Dim xMailItem als object
Dim xLaatste Rij Zo Lang
Dim vbCrLf als string
Dim xMailBody als tekenreeks
Dim xRgDateVal als string
Dim xRgSendVal als string
Dim xMailOnderwerp als tekenreeks
Dim ik zo lang
On Error Resume Next
Stel xRgDate = Bereik ("C2: C4") in
Als xRgDate niets is, sluit dan Sub af
Stel xRgSend = Bereik ("A2: A4") in
Als xRgSend niets is, sluit dan Sub af
Stel xRgText = Bereik ("B2:B4") in
Als xRgText niets is, sluit dan Sub af
xLastRow = xRgDate.Rijen.Aantal
Stel xRgDatum = xRgDatum(1) in
Stel xRgSend = xRgSend(1) in
Stel xRgText = xRgText(1) in
Stel xOutApp = CreateObject ("Outlook.Application") in
Voor i = 1 tot xLaatste rij
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Waarde
Als xRgDateVal <> "" Dan
Als CDate(xRgDateVal) - Datum <= 7 en CDate(xRgDateVal) - Datum > 0 Dan
xRgSendVal = xRgSend.Offset(i - 1).Waarde
xMailSubject = xRgText.Offset(i - 1).Waarde & "op" & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "Beste" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Tekst: " & xRgText.Offset (i - 1). Waarde & vbCrLf
xMailBody = xMailBody & ""
Stel xMailItem = xOutApp.CreateItem(0) in
Met xMailItem
.Onderwerp = xMailOnderwerp
.To = xRgSendVal
.HTMLBody = xMailBody
.Scherm
'.Versturen
Eindigt met
Stel xMailItem = Niets in
End If
End If
Volgende
Stel xOutApp = Niets in
End Sub
Deze opmerking is gemaakt door de moderator op de site
Buenos días! Heeft u een wijzigingsverzoek wat betreft de mogelijkheid om een ​​selectie te maken van de celdas met een información de fecha, texto y correo y no tener que seleccionarlas cada vez se active la macro?

también me gustaría sabre como introducir un CC, es decir, poder poner a otra persona en copia del correo. Gracias!
Deze opmerking is gemaakt door de moderator op de site
Hallo! Pudiste solucionar esto? Moet nodig zijn voor mismo.. gracias!
Er zijn nog geen reacties geplaatst
Laad meer

Volg ons

Copyright © 2009 - www.extendoffice.com. | Alle rechten voorbehouden. Aangedreven door ExtendOffice. | Sitemap
Microsoft en het Office-logo zijn handelsmerken of gedeponeerde handelsmerken van Microsoft Corporation in de Verenigde Staten en / of andere landen.
Beschermd door Sectigo SSL