Mijn vraag
Met behulp van https://www.rondebruin.nl/win/s1/outlook/bmail2.htm heb ik het voor elkaar dat wanneer er op de verzend bestselling button wordt geklikt er in de body van een email de rijen worden gekopierd uit het excel
Hierin staan ook extra gegevens zoals wat we nog op voorraad hebben, dit heb ik aan kunnen passen zodat allen de benodigde gegevens worden gekopierd.
In dit voorraad beheer blad maak ik gebruik van minimum en maximum voorraad, zodra het onder het minimum komt dan wordt dit aangegeven hiervoor gebruik ik =IFERROR(IF([@HOEVEELHEID]<=[@MINIMUM];1;0);0)
Wat ik graag zou willen bereiken is dat als dit true is dat juist alleen deze rij gekopierd word naar de e-mail body
Nu heb ik geprobeerd om bij "Set rng = Range("B4:B12, C4:C12, K4:K12") "een if then stament te gebruiken maar krijg het niet werkend
Is er een excel guru die me kan helpen ?
Met behulp van https://www.rondebruin.nl/win/s1/outlook/bmail2.htm heb ik het voor elkaar dat wanneer er op de verzend bestselling button wordt geklikt er in de body van een email de rijen worden gekopierd uit het excel
Hierin staan ook extra gegevens zoals wat we nog op voorraad hebben, dit heb ik aan kunnen passen zodat allen de benodigde gegevens worden gekopierd.
In dit voorraad beheer blad maak ik gebruik van minimum en maximum voorraad, zodra het onder het minimum komt dan wordt dit aangegeven hiervoor gebruik ik =IFERROR(IF([@HOEVEELHEID]<=[@MINIMUM];1;0);0)
Wat ik graag zou willen bereiken is dat als dit true is dat juist alleen deze rij gekopierd word naar de e-mail body
Nu heb ik geprobeerd om bij "Set rng = Range("B4:B12, C4:C12, K4:K12") "een if then stament te gebruiken maar krijg het niet werkend
Is er een excel guru die me kan helpen ?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| Private Sub CommandButton1_Click()
Dim rng As Range
Dim Outlook As Object
Dim OutlookMail As Object
Dim StrBody As String
Set rng = Nothing
On Error Resume Next
Set rng = Range("B4:B12, C4:C12, K4:K12")
On Error GoTo 0
If rng Is Nothing Then
MsgBox "Not a range or protected sheet" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set Outlook = CreateObject("Outlook.Application")
Set OutlookMail = Outlook.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "Bestelling"
StrBody = "Hallo " & "<br>" & _
"Bij deze wilde ik de volgende bestelling plaatsen" & "<br>" & _
"Met vriendelijke groet" & "<br><br><br>"
.HTMLBody = StrBody & RangetoHTML(rng)
.Display 'or use .Send
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutlookMail = Nothing
Set Outlook = Nothing
End Sub
Function RangetoHTML(rng As Range)
Dim obj As Object
Dim txtstr As Object
Dim File As String
Dim WB As Workbook
File = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
rng.Copy
Set WB = Workbooks.Add(1)
With WB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
With WB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=File, _
Sheet:=WB.Sheets(1).Name, _
Source:=WB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
Set obj = CreateObject("Scripting.FileSystemObject")
Set txtstr = obj.GetFile(File).OpenAsTextStream(1, -2)
RangetoHTML = txtstr.readall
txtstr.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
WB.Close savechanges:=False
Kill File
Set txtstr = Nothing
Set obj = Nothing
Set WB = Nothing
End Function |
/f/image/CiWdAMafpWz1uxbJcQbqFkNg.png?f=fotoalbum_large)