• 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.

In een lijst met mailadressen de niet werkende/foute adressen automatisch verwijderen

Status
Niet open voor verdere reacties.

Bornetto

Gebruiker
Lid geworden
26 okt 2009
Berichten
289
Goedemorgen mensen van Helpmij,

Wellicht snel op te lossen maar ik kom er niet helemaal uit:

Ik heb een lijst van zo'n 2.300 mailadressen die we hebben gebruikt voor een mailing.
Die adressen staan onder elkaar in een Excel-bestand. Van die lijst zijn er ongeveer 140 adressen die niet afgeleverd kunnen worden omdat ze oud zijn of omdat daar fouten in staan. Ook die adressen staan inmiddels onder elkaar in een apart bestand.

Nu kan ik die adressen die fout zijn in de grote lijst er wel handmatig tussenuit halen maar dat is best wel een klusje. Zeker omdat dit in de toekomst vaker zal gaan voorkomen bij nog veel grotere bestanden/

Is er binnen Excel een manier om dit automatisch uit te voeren?

Gr, Rob
 
Veel van die adressen zijn al heel oud en ook staan er fouten e.d. in. Of het zijn zakelijke mailadressen van mensen die al lang niet meer werkzaam zijn daar. Ook zijn er mensen inmiddels overleden. Zelfs na de derde keer versturen kwamen ze allemaal weer terug met de melding dat ze niet konden worden bezorgd. Het klopt ook wel want na het uploaden van het bestand naar Mailchimp kreeg ik ook al de melding dat deze accounts problemen op zouden gaan leveren.
 
Je kan hooguit controleren of het een syntactish correct adres is.
Voor de andere adressen zal je het moeten doen met wat je van Mailchimp terug krijgt.
 
Hoi Edmoor, daar was ik al bang voor. Ik ben nog niet op een punt dat Excel geen geheimen meer voor mij heeft dus ik had gehoopt dat er een formule mogelijk is om snel de foute mailadressen te verwijderen uit de basislijst waar ze nu nog instaan. Ik zal vandaag iemand met een "projectje" opzadelen en alle niet werkende adressen uit de lijst laten halen.
 
De syntactisch incorrecte adressen kan je met een eenvoudig stukje VBA wel vinden.
 
Probeer het volgende.
in een nieuw bestand plak de volledige lijst in kolom A en de foute adressen in kolom B
Gebruik dan de volgende macro, alle adressen die in kolom A en Kolom B voorkomen worden in kolom A verwijderd.
Code:
Sub verwijderen()
Application.ScreenUpdating = False
    r = Range("B" & Rows.Count).End(xlUp).Row
    xNames = Range("B1:B" & r)
    For r = 1 To UBound(xNames)
        If xNames(r, 1) <> vbNullString Then
            Nm = "*" & xNames(r, 1) & "*"
            Range("A:A").Replace Nm, vbNullString
        End If
    Next r
    r = Range("A" & Rows.Count).End(xlUp).Row
    Range("A1:A" & r).SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
End Sub
 
Ik gebruik dit om een ingegeven adres te controleren:
Code:
Sub Test
    If Not ValidMail then ...
End Sub

En dan is dit de ValidMail functie:
Code:
Public Function ValidMail(inEmailAddress As String) As Boolean
    If (Len(inEmailAddress) = 0) Then
        ValidMail = False
        Exit Function
    End If
    
    If (InStr(1, inEmailAddress, "@") = 0) Then
        ValidMail = False
        Exit Function
    End If
    
    If (InStr(1, inEmailAddress, ".") = 0) Then
        ValidMail = False
        Exit Function
    End If
     
    If (InStr(inEmailAddress, "@.") > 0) Then
        ValidMail = False
        Exit Function
    End If
     
    If ((InStr(inEmailAddress, ".")) = ((Len(inEmailAddress)))) Then
        ValidMail = False
        Exit Function
    End If
     
    If ((Len(inEmailAddress)) < (InStr(inEmailAddress, ".") + 2)) Then
        ValidMail = False
        Exit Function
    End If
     
    If (InStr(1, inEmailAddress, "@") = 1) Then
        ValidMail = False
        Exit Function
    End If
    
    If (InStr(inEmailAddress, " ") > 0) Then
        ValidMail = False
        Exit Function
    End If
    
    If (InStr(inEmailAddress, vbTab) > 0) Then
        ValidMail = False
        Exit Function
    End If
    
    ValidMail = True
End Function
 
Dank jullie wel. Ik ga er eind van de dag even mee aan de gang. Kom er nog op terug.
 
En hoe dat moet weet ik dus niet. Dus als je een hint heb
Zie bijlage.
Plak de volledige lijst in kolom A en de foute adressen in kolom B en druk op de knop verwijderen. Alle foute (lees deze die zowel in A en B voorkomen) worden verwijderd in A.
 

Bijlagen

  • verwijderen..xlsb
    20,8 KB · Weergaven: 55
gast0660, het heeft ongeveer een seconde geduurd om de zaak op te lossen. Heb hier en daar nog even gecontroleerd, ook het aantal dat na corrigeren overblijft, maar het is gelukt. Super bedankt en ook jij Edmoor. Toppers zijn jullie!

Gr, Rob
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan