• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

E-mailadres omzetten naar waarde

Status
Niet open voor verdere reacties.

Tijsss

Gebruiker
Lid geworden
25 jan 2012
Berichten
46
Vraagje,

Ik heb een stukje VBA dat e-mails verstuurd van een lijst emailadressen(blad1). Als deze emailadressen een vast waarde is, doet VBA dat prima. Maar als ik deze emailadressen uit andere tabbladen(blad2 of blad3) aanroep doormiddel van formules , zie VBA deze emailadressen niet.

Is er een mogelijkheid om deze emailadressen (de formule) om te zetten als waarde zodat VBA de emailadressen ziet?

M.v.g. Tijs
 
Denk je niet dat een voorbeeld documentje handig zou zijn ter ondersteuning van je vraag?
 
Inderdaad, het voorbeeldbestand is weggevallen, eh vergeten.

Maar misschien kan het met kopiëren en plakken speciaal

Kees
 
Met SpecialCells(xlCellTypeConstants) worden alleen de cellen met een vaste waarde (constanten) meegenomen, dus niet de cellen met een formule.
Doe het eens zo:
Code:
    For Each cell In Range("B2:B" & Range("B2").CurrentRegion.Rows.Count)
        If cell.Value <> "" Then
            If cell.Value Like "?*@?*.?*" And LCase(Cells(cell.Row, "C").Value) = "ja" Then
                Set OutMail = OutApp.CreateItem(0)
                On Error Resume Next
                With OutMail
                    .To = cell.Value
                    .Subject = "Dit is een test voor: " & Cells(cell.Row, "E").Value & vbNewLine & vbNewLine & strbody
                    .Body = "Beste " & Cells(cell.Row, "A").Value & vbNewLine & vbNewLine & strbody
                    .Display  'Or use Send
                End With
                On Error GoTo 0
                Set OutMail = Nothing
            End If
        End If
    Next cell
 
Super hij werkt! Bedankt voor de aanpassing en voor de feedback.

Ik heb nog een vervolg vraag. Is het met een kleine aanpassing(zonder te veel moeite) mogelijk om een MsgBox te laten zien als Email is verzonden vanuit outlook?
 
Dat kan:
Code:
    For Each cell In Range("B2:B" & Range("B2").CurrentRegion.Rows.Count)
        If cell.Value <> "" Then
            If cell.Value Like "?*@?*.?*" And LCase(Cells(cell.Row, "C").Value) = "ja" Then
                Set OutMail = OutApp.CreateItem(0)
                On Error Resume Next
                With OutMail
                    .To = cell.Value
                    .Subject = "Dit is een test voor: " & Cells(cell.Row, "E").Value & vbNewLine & vbNewLine & strbody
                    .Body = "Beste " & Cells(cell.Row, "A").Value & vbNewLine & vbNewLine & strbody
                    .Display  [COLOR="#008000"]'Or use Send[/COLOR]
                End With
[COLOR="#FF0000"]                If Err.Number = 0 Then
                    MsgBox "De mail is verzonden", vbInformation + vbOKOnly
                End If
[/COLOR]                On Error GoTo 0
                Set OutMail = Nothing
            End If
        End If
    Next cell
 
Laatst bewerkt:
Ziet er goed uit, zou die mogelijk ook later kunnen verschijnen? Hiermee bedoel ik, niet na elke mail. Maar nadat alle mails zijn verstuurd?
 
Tuurlijk.
Dan zet je dat toch na: Next cell
 
Het werkt prima! :D Erg bedankt voor je hulp!



ps zal dit berichtje op opgelost zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan