IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro qui compare 2 colonnes de 2 feuilles excel et qui supprime les différences.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Par défaut Macro qui compare 2 colonnes de 2 feuilles excel et qui supprime les différences.
    Bonjour, j'ai un problème, Voilà :

    Macro qui compare la colonne B de la 1ere feuille a la colonne A de la 2eme et qui supprime les lignes qui correspondent pas sur la 1ere

    Exemple :

    Feuille1
    Colonne A Colonne B

    aaa@google.com google.com
    assdsa@hotmail.com hotmail.com <=== existe pas supprimer la ligne
    kmlkmk@msn.fr msn.fr
    kmkmk@hotmail.fr hotmail.fr <=== existe pas supprimer la ligne


    Feuille2
    Colonne A

    google.com
    voila.fr
    msn.com
    neuf.fr
    laposte.net
    msn.fr

    Si quelqu'un peut me mettre sur une piste, je suis ouvert a tout!!!

  2. #2
    Membre éclairé
    Homme Profil pro
    Chargé d'Etudes Statistiques
    Inscrit en
    Novembre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'Etudes Statistiques
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2010
    Messages : 79
    Par défaut
    peux-tu reformuler ta demande ? ce n'est pas très clair
    les données des deux colonnes doivent correspondre en ayant des cellules identiques ?

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut SUPPRESSION
    Bonjour,

    Tu peux

    - dans ta feuille 1, rechercher la postion de ton indice dans la colonne correspondante de la feuille2 par la fonction Equiv

    en VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheet.Function.Match
    - Si la fonction renvoie une erreur, alors tu supprimes la ligne

    Reviens si besoin.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Par défaut
    non les cellules ne correspondents pas, en fait il s'agit d'une liste d'adresses mails, ou j'ai séparer le nom de domaine dans la 2eme colonne afin de comparer ces domaines a une liste de top domaines sur une autre feuille.

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut compare colonne
    Salut,

    Et de fait, tu peux comparer les indices de ta colonne 2 par rapport à ta base de "top".

    Ici, j'ai j'ai appelé ta feuille de top "base", et celle où tu dois supprimer les lignes "mafeuille"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub essai()
    Dim colonne As Range
    Application.ScreenUpdating = False
    Max = Sheets("mafeuille").Range("A" & Rows.Count).End(xlUp).Row
    With Sheets("base")
        Set colonne = .Range(.Range("A1"), .Range("A" & Rows.Count).End(xlUp))
    End With
    For i = Max To 1 Step -1
        If IsError(Application.Match(Sheets("mafeuille").Cells(i, 2), colonne, 0)) Then Sheets("mafeuille").Cells(i, 2).EntireRow.Delete
    Next
    Set colonne = Nothing
    End Sub

  6. #6
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Par défaut
    Désolé j'ai testé ton code et cela supprime absolument tout dans "mafeuille".

    Cordialement Antoine.

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut recherche
    Salut,

    J'ai testé sans problème.

    - Regarde bien si les adresses (feuille, colonne) que j'ai mises dans mon code sont adaptées à tes données
    Exemple Cells(i,2) correspond à la cellule colonne B ligne i.
    Précise bien dans quelles colonnes se trouvent tes données.

    - En ce qui concerne le rapprochement, pour une cellule commune aux 2 feuilles, effectue un test avec la fonction Equiv de cette façon.

    =Equiv(valeur cherchée de la feuille "mafeuille", colonne de "base" où doit se trouver la valeur cherchée, 0)

    Si tu obtiens une erreur, alors il doit y avoir un problème dans tes occurences de la colonne B de ta 1ère feuille;

    - En dernier recours, joins un fichier simplifié

  8. #8
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut recherche
    Salut à toi mercatog,

    Dans ton code, j'ai l'impression qu'il faut écrire

    Antoine,

    J'ai un niveau plus que modeste (presque ridicule comparé à mercatog et les autres). Malgré tout, si j'avais abandonné dès qu'une difficulté se présentait, je n'effectuerais pas mes développements actuels. En VBA, je pense, il faut galèrer au début et même après. C'est cette galère qui fait progresser.

    Alors, continue...

  9. #9
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Sans utiliser la colonne B de la feuille Feuil1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim i As Long, LastLig As Long
    Dim c As Range
     
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = LastLig To 2 Step -1
            Set c = Sheets("Feuil2").Range("A:A").Find(Split(Range("A" & i).Value, "@")(1), lookat:=xlWhole)
            If Not c Is Nothing Then
                .Rows(i).Delete
                Set c = Nothing
            End If
        Next i
    End With

  10. #10
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Par défaut
    Rien ne fonctionne, j'abandonne.

    Merci,
    Antoine.

Discussions similaires

  1. Comparer les valeurs de deux colonnes d'une feuille excel
    Par charrynsasi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/12/2012, 14h40
  2. [XL-2003] Comparer 2 colonnes dans 2 feuilles différentes
    Par MaverickRozay dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/04/2012, 08h39
  3. [XL-2003] Comparer 2 colonnes dans une feuille
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 07/05/2010, 16h59
  4. Comparer des colonnes dans 2 feuilles différentes et supprimer les doublons
    Par eudeline91 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2008, 09h24
  5. Comparer 3 colonnes dans 2 feuilles
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/04/2008, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo