Beste Tweakers,
Ik loop tegen een heel stom probleem aan, ik heb een stuk code geschreven die met een VBA VLookup een mailadres moet ophalen, en daar een mail naartoe moet versturen.
Code onder de knop voor single mail:
Als ik deze code 'enkel' uitvoer is er geen enkel probleem. De juiste bijlagen worden netjes toegevoegd, en de mail is gericht aan de juiste man.
Zodra ik éxact dezelfde code loop, dan klapt hij er bij een bepaald persoon, laten we hem even "Karel" noemen, eruit. Zodra ik dus in mijn listbox Karel selecteer en ik doe een enkele mail gaat alles prima, krijg ik netjes een mail met de juiste bijlagen, maar zodra hij het via een loop moet doen krijg ik ineens een foutmelding.
Ik heb uitgesloten dat het in de createPDF Functie zit, want als ik de createMail uit comment loopt ie wel netjes door. Andersom niet, vandaar dat ik er vanuit ga dat het in de createMail zit.
bijgaand de createMail
En wat handig kan zijn;
getMailAddress
De foutmelding die ik verkrijg is een Fout 13 tijdens uitvoering: Typen komen niet met elkaar overeen. Het stomme is dat ik die fout bij een 'enkel' proces niet krijg, en dat het maar bij 1 specifieke naam gebeurt waar geen rare tekens in zitten.
Bij de foutopsporing licht deze regel op:

En zo zien mijn variabelen eruit

Ik ben trouwens géén programmeur, allemaal hobby en autodidact, dus hoor graag verbeteringen.
Ik loop tegen een heel stom probleem aan, ik heb een stuk code geschreven die met een VBA VLookup een mailadres moet ophalen, en daar een mail naartoe moet versturen.
Code onder de knop voor single mail:
code:
1
2
3
4
5
6
7
8
9
10
| Private Sub createSingleMail_Click() If Me.ListBoxWorker.ListIndex = -1 Then MsgBox "Er is geen medewerker geselecteerd!" Else Call createPDF(Me.ListBoxWorker.Value, False) Call ResetTable Call createPDF("Overzicht", False) Call createMail(Me.ListBoxWorker.Value) End If End Sub |
Als ik deze code 'enkel' uitvoer is er geen enkel probleem. De juiste bijlagen worden netjes toegevoegd, en de mail is gericht aan de juiste man.
Zodra ik éxact dezelfde code loop, dan klapt hij er bij een bepaald persoon, laten we hem even "Karel" noemen, eruit. Zodra ik dus in mijn listbox Karel selecteer en ik doe een enkele mail gaat alles prima, krijg ik netjes een mail met de juiste bijlagen, maar zodra hij het via een loop moet doen krijg ik ineens een foutmelding.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| Private Sub createAllMails_Click() ' maak overzichtspagina Call ResetTable Call createPDF("Overzicht", False) ListBoxWorker.ListIndex = 0 Dim I As Long For I = ListBoxWorker.ListCount - 1 To 0 Step -1 ListBoxWorker.ListIndex = I Call createPDF(Me.ListBoxWorker.Value, False) Call createMail(Me.ListBoxWorker.Value) Next I MsgBox "Alle planningen zijn verstuurd!" End Sub |
Ik heb uitgesloten dat het in de createPDF Functie zit, want als ik de createMail uit comment loopt ie wel netjes door. Andersom niet, vandaar dat ik er vanuit ga dat het in de createMail zit.
bijgaand de createMail
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
| Public Sub createPDF(fileName As String, message As Boolean) With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .Orientation = xlPortrait .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With 'dim Weeknummer en configpath en uiteindelijke path Dim weekNumber As String weekNumber = getWeek() Dim basePath As String basePath = getBasePath() Dim newPath As String If fileName = "Overzicht" Then fileName = fileName & " - " & weekNumber newPath = basePath & weekNumber & "\" & fileName Else fileName = weekNumber & " - " & fileName newPath = basePath & weekNumber & "\" & fileName End If If checkIfPathExists(basePath, weekNumber) = True Then ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=newPath, ignoreprintareas:=True, IncludeDocProperties:=True If message = True Then MsgBox "Bestand is aangemaakt op locatie: " & newPath End If Else MsgBox "Pad bestaan beide niet. Controleer de 'Instellingen' tab en zorg voor een juist pad in cel B5", vbCritical, "Fout in PDF paden!" End If End Sub |
En wat handig kan zijn;
getMailAddress
code:
1
2
3
4
5
6
7
| Function getMailAddress(workerName) Dim mailAddress As String mailAddress = Application.VLookup(workerName, Sheets("Monteurs").Range("A11:D150"), 3, False) getMailAddress = mailAddress Debug.Print ("getMailAddress() Called") Debug.Print (getMailAddress) End Function |
De foutmelding die ik verkrijg is een Fout 13 tijdens uitvoering: Typen komen niet met elkaar overeen. Het stomme is dat ik die fout bij een 'enkel' proces niet krijg, en dat het maar bij 1 specifieke naam gebeurt waar geen rare tekens in zitten.
Bij de foutopsporing licht deze regel op:

En zo zien mijn variabelen eruit

Ik ben trouwens géén programmeur, allemaal hobby en autodidact, dus hoor graag verbeteringen.