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 des cellules dans feuilles différentes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Par défaut Comparer des cellules dans feuilles différentes
    Bonjour à tous,

    J'ai trouvé quelques morceaux de codes sur le site mais rien qui ne m'aide vraiment ou qui réalise ce que je veux.

    Dans 2 feuilles excel, les tableaux font 17 colonnes et 17000 lignes environs.

    La premiere valeur a comparer est en A7.

    Il faudrait que la macro compare la colonne A des 2 feuilles.

    Ex: Si A7 de la feuille 1 est egale a une des cellules de la colonne A de la feuille 2 alors dans la colonne R de la feuille 1 insérer "ok" sinon "pas ok"
    ainsi de suite si A8.......jusqu'a la fin de la colonne.

    Faire de meme avec la feuille 2.

    Merci.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as un exxcccélent exemple dans l'aide en ligne à Find.
    Si tu as un problème pour l'adapter, tu ramènes ton code, on pourra t'aider
    A+

  3. #3
    Membre actif
    Inscrit en
    Janvier 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 57
    Par défaut
    J'ai essayé ca pour toi mais ca marche moyen:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Sub comparaison()
      Dim F1 As Worksheet, F2 As Worksheet
      Dim chaine As Variant
      Dim Boucle1 As Integer, boucle2 As Integer
     
      'Selection des feuille à utiliser
      Set F1 = Worksheets("Feuil1")
      Set F2 = Worksheets("Feuil2")
     
      'on boucle sur les chaines de la 1er feuille colonne 1 à partir de la ligne 2
      For Boucle1 = 2 To F1.Cells(Rows.Count, 1).End(xlUp).Row
        'convertir la chaine en tableau
        chaine = Split(F1.Cells(Boucle1, 1), " ")
        'parcourir le tableau
        For boucle2 = 0 To UBound(chaine)
          'si la valeur dans le tableau n'est pas dans la chaine de la feuille 2
          If Not InStr(F2.Cells(Boucle1, 1), chaine(boucle2)) > 0 Then
          'on ecrit dans la colonne 18 la valeur manquante
          F2.Cells(Boucle1, 18) = F2.Cells(Boucle1, 18) & chaine(boucle2) & " "
          End If
        Next
     
      'Au besoin on vérifie dans l'autre sens
     
        'convertir la chaine en tableau
        chaine = Split(F2.Cells(Boucle1, 1), " ")
        'parcourir le tableau
        For boucle2 = 0 To UBound(chaine)
          'si la valeur dans le tableau n'est pas dans la chaine de la feuille 1
          If Not InStr(F1.Cells(Boucle1, 1), chaine(boucle2)) > 0 Then
          'on ecrit dans la colonne 18 la valeur manquante
          F1.Cells(Boucle1, 18) = F1.Cells(Boucle1, 18) & chaine(boucle2) & " "
          End If
        Next
       Next
    End Sub
    Il doit manquer des choses

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si A7 de la feuille 1 est egale a une des cellules de la colonne A de la feuille 2 alors dans la colonne R de la feuille 1 insérer "ok" sinon "pas ok"
    ainsi de suite si A8
    Avec find, ça marche plus mieux
    En instanciant tes deux feuilles pour alléger le code
    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 Cherche()
    Dim FL1 as worksheet
    Dim FL2 as worksheet
        Set FL1 = Worksheets("feuil1") 'Le fichier où tu colles
        Set FL2 = Worksheets("feuil2") 'Le fichier où tu cherches
        For NoLig = 7 to FL1.range("65535").end(xlup).row
            With FL2.Range("a1:a" & FL2.range("65535").end(xlup).row) 'tu désignes ta plage de recherche
                Set c = .Find(Donnee, lookin:=xlValues)
                If Not c Is Nothing Then
                    FL1.Cells(NoLig, 18) = "ok"
                  else
                    FL1.Cells(NoLig, 18) = "/ok"
                End If
            End With
        Next
    End sub
    Tu peux tester pour moi ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Par défaut
    ouskel'n'or -> Erreur Croix blanche sur fond rouge puis "400"

    Steelk-> Ca marche pas car il gere pas le décalage

    ex:
    feuil1

    a
    b
    c
    d

    feuil2

    a
    c
    d

    en sortie on a sur feuil1:
    b
    c

    et sur feuil2:
    c
    d

    alors qu'il faudrait indiquer que b sur feuil2

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai apporté une correction immédiatement après avoir posté. Tu vérifies le code.
    Vérifie aussi le nom de tes feuilles
    A+

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

Discussions similaires

  1. [VBA-E] Comparer des valeurs dans des cellules
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 22/06/2017, 15h00
  2. [XL-2013] Comparer des cellules dans une meme colonne, et faire la sommes des critères
    Par savaryb dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/02/2015, 17h28
  3. Comparer 2 cellules dans différents fichiers
    Par banzaiboubou dans le forum Excel
    Réponses: 1
    Dernier message: 24/11/2009, 10h47
  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. Problème de lecture des cellules dans une feuille Excel
    Par wangjun dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2006, 09h35

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