Toon posts:

VBA celimport

Pagina: 1
Acties:

Onderwerpen

Vraag


  • Jan Meyer
  • Registratie: Januari 2022
  • Laatst online: 10-01-2022
Beste,

Ik ben bezig met een Excel sheet om automatisch een mail te sturen via een macro.

Het gaat om het automatiseren van automatische bestelmails als een minimum is bereikt, zie onderstaande afbeelding.



Ik heb onderstaande macro gemaakt maar krijg het inlezen van de inhoud direct in de code niet van elkaar, kunnen jullie mij erbij helpen?

Dim xRg As Range
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("I2"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 0 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Beste leverancier D2 " & vbNewLine & vbNewLine & _
"Ik zou graag artikel B2 met artikelnummer C2 bijbestelhoeveelheid H2 keer bij willen bestellen." & vbNewLine & _
"Met vriendelijke groet"
On Error Resume Next
With xOutMail
.To = "mailadres E2 "
.CC = ""
.BCC = ""
.Subject = "automatische order"
.Body = xMailBody
.Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub


Bedankt voor de responds,
Jan

Alle reacties


  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Wat werkt er niet? Begin eens met debuggen (nadat je de "On Error Resume Next" hebt weggehaald natuurlijk).

Hoe roep je de macro overigens aan? De code "If Target.Cells.Count > 1 Then Exit Sub" vind ik ietswat schimmig.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Alle terechte opmerkingen over 'on error resume next' en 'gebruik geen code in produktie die je niet zelf snapt of is gemaakt door iemand die het snapt' daargelaten: de vraag lijkt te zijn hoe je de waarde uit een cel ophaalt.

Dus in plaats van "Beste leverancier D2", "Beste Houtbedrijf de Splinter" tenminste als in D2 'Houtbedrijf de Splinter' staat.

tldr:
code:
1
xMailBody = "Beste leverancier " & Range("D2") & vbNewLine & vbNewLine & _
etc.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Jan Meyer
  • Registratie: Januari 2022
  • Laatst online: 10-01-2022
Hoi KabouterSuper,

Dank voor de input.
debuggen heb ik al gedaan "if target... is alleen maar dat er geen ander getal gebruikt kan worden dan 0 of 1.

Ik heb alleen in vet ingeschreven wat de bedoeling is.

dus Beste leverancier D2 is geen code maar wat erin hoord.
Als ik Lustucru goed begrijp is het dus

xMailBody = "Beste" & Range("D2") & vbNewLine & vb NewLine & _

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 14:12

g0tanks

Moderator CSA
Wat is dan de foutmelding die je krijgt? In welke regel gaat het mis? Dat is voor mij nog steeds niet duidelijk.

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


  • Jan Meyer
  • Registratie: Januari 2022
  • Laatst online: 10-01-2022
Het is gelukt en werkt perfect, Dank voor de input.

Dim xRg As Range
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("I2"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 0 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Beste " & Range("D2") & vbNewLine & vbNewLine & _
"Ik zou graag artikel " & Range("B2") & vbNewLine & _
"met artikelnummer " & Range("C2") & vbNewLine & _
Range("H2") & " keer willen bestellen" & vbNewLine & _
"Dit is een automatisch gegenereerde E-mail" & vbNewLine & vbNewLine & _
"Met vriendelijke groet," & vbNewLine & _
"Team ... B.v."
On Error Resume Next
With xOutMail
.To = Range("E2")
.CC = ""
.BCC = ""
.Subject = "automatische order"
.Body = xMailBody
.Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee