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 :

Comparer 2 colonnes dans 2 feuilles différentes [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Comparer 2 colonnes dans 2 feuilles différentes
    Bonjour tous le monde,

    J'ai un soucis avec une macro Excel, mon souhait est de créer une macro qui compare le contenu de chaque cellule d'une colonne A dans une feuille A avec le contenu d'une colonne B dans une feuille B.
    Si il y a des correspondances entre les deux colonnes des deux fichiers je veux supprimer les lignes présente dans la feuille A. Mais surtout pas supprimer celle de la feuille B (fichier de référence).

    Voila ma macro, elle compil mais quand je la lance Excel plante. Je pense que je fais trop de tour de boucle ou même pire une boucle infinie...:/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub Vivier()
    Dim k As Integer
    Dim i As Integer
    Dim aaa As Variant
        aaa = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY", "AZ")
    Dim colonne_libellestandard As Variant
     
           For k = 1 To 100
                For h = 1 To 833
                If Sheets("N°Banc").Range("C" & k).Value = Sheets("Export").Range("J" & h).Value Then
                    Rows(h).Delete
                End If
                Next h
            Next k
     
    End If
    'Next i
    End Sub
    Merci d'avance pour l'aide que vous pourriez m'apporter.

  2. #2
    Membre actif Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Points : 239
    Points
    239
    Par défaut
    Bonjour,

    Il y a des lignes dont je ne vois pas l'intérêt dans ton code.

    Essaie ceci (je l'ai fait à la volée):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim compteur_boucle_A As Long
    Dim compteur_boucle_B As Long
    For compteur_boucle_A = 1 To Range("C1").End(xlDown).Row
    For compteur_boucle_B = 1 To Range("J1").End(xlDown).Row
    If Sheets("A").Range("C" & compteur_boucle_A) = Sheets("B").Range("J" & compteur_boucle_B) Then
    Sheets("A").Range("C" & compteur_boucle_A).EntireRow.Delete
    End If
    Next compteur_boucle_B
    Next compteur_boucle_A
    Le mieux serait d'utiliser des variables tableaux mais bon

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Tout d'abord merci pour ta réactivité.

    Quels lignes te posent problème dans mon code ?

    Je vais tester ça et je reviens vers toi si j'ai d'autres questions.

    L'albatros ton code ne supprime aucune lignes, j'ai modifié ton code pour l'adapter au mien voila ce que ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    Dim compteur_boucle_A As Long
    Dim compteur_boucle_B As Long
        For compteur_boucle_A = 1 To Range("J1").End(xlDown).Row
            For compteur_boucle_B = 1 To Range("C1").End(xlDown).Row
                If Sheets("Export").Range("J" & compteur_boucle_A).Value = Sheets("N°banc").Range("C" & compteur_boucle_B).Value Then
                    Sheets("Export").Range("J" & compteur_boucle_A).EntireRow.Delete
                End If
            Next compteur_boucle_B
        Next compteur_boucle_A
    End Sub
    De mon côté j'ai repris mon premier code en enlevant les fioritures, et en m'inspirant de ton code, ça supprime des lignes mais pas celles que je souhaite...La loose !

    Voila mon code sans fioritures:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Vivier()
    '
    ' Vivier Macro
    ' Macro enregistrée le 20/04/2012 par p065144
    '
    Dim k As Integer
    Dim i As Integer
           For k = 1 To 100
                For h = 1 To 833
                If Sheets("N°Banc").Range("C" & k).Value = Sheets("Export").Range("J" & h).Value Then
                    Rows(h).Delete
                End If
                Next h
            Next k
     
    End Sub

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    essayes ce code en l'adaptant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub test()
    Dim Dl As Long, x As Long, y As Long
    Dim tbA(), tbB()
     
    With Sheets("N°Banc") 'feiulle originale
      Dl = .Range("C" & .Rows.Count).End(xlUp).Row
      ReDim tbA(1 To Dl)
      For x = 1 To Dl
        tbA(x) = .Range("C" & x)
      Next x
    End With
    With Sheets("Export") 'feuille où les lignes sont à supprimer
      Dl = .Range("J" & .Rows.Count).End(xlUp).Row
      For y = 1 To UBound(tbA)
        For x = Dl To 1 Step -1
          If .Range("J" & x) = tbA(y) Then
            .Rows(x).Delete
          End If
        Next x
      Next y
    End With
     
    End Sub

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour casefayere,

    J'ai tester ton code et cela fonctionne très bien je te remercies pour ton aide.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/03/2014, 14h48
  2. Comparer 2 colonne dans 2 feuilles différentes
    Par toufik135 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/01/2014, 20h06
  3. comparer 2 balances dans 2 feuilles différentes
    Par rimbaut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2009, 10h00
  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