Probleme pour TRIER 2 COLONNES

Michel -  
commentcamarcheeay Messages postés 735 Statut Membre -
Bonjour,

J'ai besoin d'aide, j'ai 2 colonnes dans mon fichier excel.
La colonne 1 contient 1000 adresses mails / la colonne 2 contient 200 adresses mails qui sont deja dans la colonne 1.
Le pb c'est que je souhaite les supprimer dans la colonne 1.

Je cherche une formule qui dirait:
SI email présent dans colonne1 et présent dans colonne 2 alors effacer dans colonne 1

Existe-il une formule?

Merci d'avance,

2 réponses

  1. emonyna
     
    A ma connaissance, ce genre de commande n'existe pas. (Ou alors on m'a fait faire beaucoup de travail pour rien au bureau....)
    Je pense donc malheureusement qu'il va falloir trier tes adresses à la mains. Si elles sont par ordre alphabétique, ça devrait aller vite^^ Bonne chance.
    0
    1. commentcamarcheeay Messages postés 735 Statut Membre 86
       
      A la main?!! :-))
      Microsoft a bien eu l'intelligence de mettre au point ce qu'on appelle les macros. Il n' faut pas hésiter à s'en servir. Je suis entrain de tester un exemple.
      0
    2. Michel
       
      Je crois qu'il existe des formules via les macros mais je ne maitrise pas
      0
  2. commentcamarcheeay Messages postés 735 Statut Membre 86
     
    Bonjour,
    Ta question m'a fait plonger dans les anciens bouquins d'Excel. J'avoue que ce n'est pas si évident!
    Je suis sorti finalement avec le code suivant qui filtre la colonne A:A en fonction de ce qui se trouve dans la colonne B:B

    Sub filterAdresses(myList As Range, myToDel As Range)
    Set myList = ThisWorkbook.Worksheets("Feuil1").Range(myList.Address)
    Set myToDel = ThisWorkbook.Worksheets("Feuil1").Range(myToDel.Address)
    Debug.Print myList.Address
    Debug.Print myToDel.Address
    Dim celli As Range
    Dim cellj As Range
    For Each celli In myToDel.Cells
    For Each cellj In myList.Cells
    If celli = cellj Then
    cellj.Delete Shift:=xlUp
    End If
    Next
    Next
    End Sub

    Sub main()
    Dim myWorkSheet As Worksheet
    Set myWorkSheet = ThisWorkbook.Worksheets("Feuil1")
    filterAdresses myWorkSheet.UsedRange.Columns(1), myWorkSheet.UsedRange.Columns(2)
    End Sub


    Ça a bien fonctionné pour moi. Il faut exécuter la macro "main".

    0
    1. Michel
       
      Bonjour,

      Merci pour votre réponse, mais comment fait on pour exécuter cette action
      Créer nouvelle macro puis...

      Je ne comprend pas

      Merci d'avance
      0
    2. commentcamarcheeay Messages postés 735 Statut Membre 86
       
      - Après avoir mis la liste totale dans la colonne A et les adresses à chercher dans la colonne B. (Attention, garde des copies de ton fichier s'il est important)
      - Alt + F11 pour ouvrir la page du développement VBA.
      - Dans le volet "Projet-VBAProject" en haut à gauche > clic droit > Insertion > Module
      - Une nouvelle icône qui s'appelle Module1 va être créée. Double clic sur cette icône.
      - Dans la page qui vient de s'ouvrir, colle le code que j'ai mis précédemment.
      - F5 pour exécuter le code. Si tu reviens à ta fenêtre tu vas voir que le travail est fait.
      0