By kylejohnson95757@gmail.com op Vrijdag 01 maart 2019
Geplaatst in Excel
Antwoorden 0
sympathieën 0
keer bekeken 3.2K
Stemmen 0
Hoi,
Ik ben nieuw in VBA. Ik heb een code geschreven om een ​​e-mail te verzenden als er een celwaarde is gewijzigd in kolom F, en de code werkt prima. Maar ik wil ervoor zorgen dat de werkmap wordt opgeslagen voordat de e-mail wordt verzonden. De hoofdtekst van de e-mailtekst moet de referentiecelwaarde bevatten, dit is de waarde uit kolom A van de rij met gewijzigde waarde. Gebruik alstublieft geen bericht, het zal niet werken met de werkmap. De werkmap heeft een formulier en het laadt de invoerwaarde naar de aangewezen cellen. De code werkt prima met het formulier. Maar als iemand het blad ingaat en de waarde handmatig bijwerkt, wordt de e-mail naar gebruikers verzonden, wat ik pas wil als het bestand is opgeslagen. Help alstublieft! Bij voorbaat dank.

Particulier subwerkblad_Wijziging (ByVal-doel als bereik)
Dim s1, s2, s3, s4, s5, s6 Als bereik
Stel s1 = Bereik ("F1310:F1334") in
Stel s2 = Bereik ("F1426:F1450") in
Stel s3 = Bereik ("F1339:F1363") in
Stel s4 = Bereik ("F1455:F1479") in
Stel s5 = Bereik ("F1368:F1392") in
Stel s6 = Bereik ("F1397:F1421") in
On Error Resume Next
Als Target.Cells.Count > 1 Sub afsluiten
'vind waarde gewijzigd in kolom F
Als Intersect (Target, Union (s1, s2, s3, s4, s5, s6)) niets is, sluit dan Sub af
If IsNumeric(Target.Value) And Target.Value <> "" Dan
Dim xOutApp als object
Dim xOutMail als object
Dim xMailBody als tekenreeks
Dim xMailText als tekenreeks
Stel xOutApp = CreateObject ("Outlook.Application") in
Stel xOutMail = xOutApp.CreateItem(0) in
'indexwaarde uit kolom A van de rij waarvan de waarde is gewijzigd in opgenomen in de hoofdtekst van de e-mail'
xMailText = Target.Offset(, -5).Waarde
xMailBody = "Hallo daar" & vbNewLine & vbNewLine & _
"Factuur ontvangen voor " & xMailText & vbNewLine & vbNewLine & _
"Bedankt" & vbNewLine & vbNewLine & _
"Meneer J"
On Error Resume Next
Met xOutMail
.To = "test@gmail.com"
.CC = ""
.BCC = ""
.Subject = "Factuur ontvangen"
.Body = xMailBody
.Versturen
Eindigt met
On Error GoTo 0
Stel xOutMail = Niets in
Stel xOutApp = Niets in
End If
End Sub
Bekijk het volledige bericht