VBA Mail .To geeft geen reslutaat als 1 van de TextBoxen leeg is

Status
Niet open voor verdere reacties.

JohnSnoei

Gebruiker
Lid geworden
25 jul 2023
Berichten
30
In mijn mailcode staat bij .To het volgende

Code:
 With OutMail
                 
           .To = Application.WorksheetFunction.VLookup(Datum_wijzigen.TextBox12.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.TextBox13.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.TextBox14.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.TextBox15.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.TextBox16.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.TextBox18.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.TextBox19.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.Textbox20.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False) & ";" & _
                 Application.WorksheetFunction.VLookup(Datum_wijzigen.Textbox21.Value, Sheets("Vrijwilligers").Range("E2:K76"), 7, False)

Als 1 van deze TextBox(en) leeg is krijg ik geen resultaat bij .To wel als ze alle 9 gevuld zijn, wat doe ik fout?
 
Als een van de textboxen niet gevuld is geeft die bij vert.zoeken #N/B terug, als je die concateneert met de wel gevonden e-mailadressen is het resultaat nog steeds #N/B.
Ik zou zoiets doen:
Code:
Function ZoekEmailadres(lidnr) As String
    Dim rng As Range
    Set rng = Range("E2:E76").Find(lidnr)
    If Not rng Is Nothing Then
        ZoekEmailadres = Cells(rng.Row, "K") & ";"
    End If
End Function
 
Laatst bewerkt:
Ik zou bij zo'n functie, wat wel een goed idee, is in ieder geval niet die ; mee terug geven.
M.a.w., plaats een voorbeeld documentje.

Voorbeeldje:
Code:
Private Sub CommandButton1_Click()
    Dim sAdres() As String
    Dim sAdr As String
    Dim sTo As String
    Dim i As Integer
    Dim x As Integer
    
    For i = 12 To 21
        If i <> 17 Then
            sAdr = ZoekEmailadres(Controls("Textbox" & i).Text)
            ReDim Preserve sAdres(x)
            If sAdr <> "" Then
                sAdres(x) = sAdr
                x = x + 1
            End If
        End If
    Next i
    
    sTo = Join(sAdres, ";")
    Debug.Print sTo
End Sub

Function ZoekEmailadres(lidnr As String) As String
    Dim rng As Range
    Set rng = Sheets("Vrijwilligers").Range("E2:E76").Find(lidnr)
    If Not rng Is Nothing Then
        ZoekEmailadres = Sheets("Vrijwilligers").Cells(rng.Row, "K")
    End If
End Function
 
Laatst bewerkt:
UserForm Data_Wijzigen als je een reservering ophaal wil ik de medewerkers die ingevuld zijn bij een annulering per mail verwittigen. Het kan dat ze alle negen zijn ingevuld maar ook 3 of 4. Dan krijg ik geen resultaat als ik Mail_Annulering_Reservering aanklik
 

Bijlagen

En het voorbeeld in #3 heb je al getest?
 
Nee nog niet begrijp niet helemaal waar ik deze moet plaatsen maak ik daar een aparte button van of kan ik die meenemen in Mail Module? Hoe wordt .To dan gevuld? Ligt ongetwijfeld aan mijn kennis, maar kan je me daar bij helpen.
 
Gebruik een Listbox met multiselect.
Gebruik je überhaupt de suggesteis die je krijgt in dit forum ?
 
Zeker gebruik ik ze maar wat jou suggesties zijn om list te gebruiken ben ik nog niet mee verder gegaan. Komt in een later stadium zoals ik al eerder heb aangegeven maar kennelijk is dat antwoord niet voldoende. Ik ben lerende en stap voor stap pak ik eea op. Kortom ik doe me best.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan