Trier colonne emails avec beaucoup de critères

Bonjour à toutes et à tous,

J'ai vraiment besoin de vos aides pour trier correctement une colonne email qui contient près de 37 000 adresses.

Je dois absolument enlever toutes les adresses non valides.

Il me faudrait une formule pour enlever toutes les adresses qui :

  • ne possèdent pas de @
  • contiennent les symboles : Â ² Ã © Ä ¨ : / ;
  • contiennent des espaces

Le problème est que la colonne doit être "propre" pour pouvoir exporter ce fichier vers le logiciel d'expédition de newsletters.

Si quelqu'un à une solution, je suis preneur sachant que nous perdons énormément de temps à tout rectifier.

En vous remerciant,

Bonne journée,

Julien.

Bonjour,

une solution via une fonction personnalisée, à introduire dans un module VBA et à utiliser de la façon suivante

si l'adresse à examiner est en A1

=SI(OU(contientcar(A1,"²éĨ:/ ;"),NON(contientcar(A1,"@")),"Invalide","Valide")

tu peux ensuite sélectionner les adresses valides.

Function contientcar(s As String, car As String) As Boolean
Dim i As Long
For i = 1 To Len(car)
 If InStr(s, Mid(car, i, 1)) <> 0 Then contientcar = True: Exit Function
Next i
End Function

Merci beaucoup pour votre réponse claire et rapide !

Bonne journée,

Julien.


Par contre s'il s'agit de toute la colonne A ?

Désolé je n'ai vraiment pas beaucoup de connaissances sur Excel...

bonjour,

la formule, telle qu'écrite, ne s'applique qu'à la cellule A1. Il faut recopier la formule (la tirer vers le bas) autant de fois que nécessaire.

ça marche, je m'y colle, merci beaucoup !

Julien.

Bonjour,

peut-être plus simple pour toi finalement, voici une macro qui va sélectionner les adresses valides sur feuil1 et les mettre dans feuil2.

tu peux adapter le nom de feuil1, feuil2, la colonne dans laquelle se trouvent les adresses, la liste des caractères invalides en modifiant les variables dans la première partie de la macro. voir commentaires.

Sub selectionne_adresse_valide()
    Set ws1 = Worksheets("Feuil1")    ' ws1 feuille contenant les adresses à examiner
    Set ws2 = Worksheets("Feuil2")    ' ws2 feuille qui recevra les adresses valides
    coladresse = "A"    ' colonne de la ws1 qui contient les adresses à examiner
    car = "²éĨ:/ ;"    ' liste des caractères invalides
    premièreligne = 2    ' première ligne contenant une adresse à examiner
    v = 1    ' première ligne qui recevra le résultat
    dlws1 = ws1.Range(coladresse & Rows.Count).End(xlUp).Row    ' dernière ligne contenant une adresse à examiner

    For k = premièreligne To dlws1    ' on parcourt toutes les lignes
        s = ws1.Cells(k, coladresse)    ' s contient l'adresse en cours à examiner
        valide = True
        If InStr(s, "@") = 0 Then    ' si ne contient pas @, adresse invalide
            valide = False
        Else
            For i = 1 To Len(car)    ' si contient un des caractères invalides , adresse invalide
                If InStr(s, Mid(car, i, 1)) <> 0 Then valide = False: Exit For
            Next i
        End If
        If valide Then ws2.Cells(v, 1) = s: v = v + 1    ' si adresse valide on la copie dans la feuille résultat
    Next k
End Sub
Rechercher des sujets similaires à "trier colonne emails beaucoup criteres"