Probleme pour TRIER 2 COLONNES

Fermé
Michel - 20 mai 2010 à 16:00
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 - 21 mai 2010 à 09:06
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,
A voir également:

2 réponses

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
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
20 mai 2010 à 17:06
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
Je crois qu'il existe des formules via les macros mais je ne maitrise pas
0
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
20 mai 2010 à 21:50
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
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
commentcamarcheeay Messages postés 667 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 86
21 mai 2010 à 09:06
- 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