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.