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 :

comparaison de données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 74
    Par défaut comparaison de données
    bonjour voila j'aimerais comparez des données entre 2 feuilles ,si deux cellule sont identiques je dois mettre la ligne en couleur.

    voici mon 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sheets("mag").Select
        Cells.Select
        Selection.Interior.ColorIndex = xlNone
        Sheets("bdt").Select
        Cells.Select
        Selection.Interior.ColorIndex = xlNone
    Dim derlign As Long
    Sheets("données").Select
    derlign = [A65000].End(xlUp).Row
     
    Sheets("mag").Select
    Dim i As Integer
    Dim d As Integer
    Dim derlig As Long
    d = 1
    derlig = [A65000].End(xlUp).Row
    For i = 1 To derlig
     For d = 1 To derlign
        If Sheets("données").Range("C" & d) = Sheets("Mag").Range("c" & i) Then
            If Sheets("données").Range("E" & d) = Sheets("Mag").Range("I" & i) Then
                Rows(i).Select
                Selection.Interior.ColorIndex = 3
            End If
        End If
     Next d
    Next i

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonjour,

    n peu de soulagement de 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub essai()
    Dim i As Integer
    Dim d As Integer
    Dim derlig As Long
     
    Sheets("mag").Cells.Interior.ColorIndex = xlNone
    Sheets("bdt").Cells.Interior.ColorIndex = xlNone
    Dim derlign As Long
    With Sheets("données")
        derlign = .Range("A" & .Rows.Count).End(xlUp).Row
    End With
    With Sheets("mag")
        d = 1
        derlig = .Range("A" & .Rows.Count).End(xlUp).Row
        For i = 2 To derlig
            For d = 2 To derlign
                If Sheets("données").Range("C" & d) = .Range("c" & i) Then
                    If Sheets("données").Range("E" & d) = .Range("I" & i) Then
                        .Rows(i).Interior.ColorIndex = 3
                    End If
                End If
            Next d
        Next i
    End With
    End Sub
    bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Salut

    avec des listes importantes, il vaut mieux passer par des tableaux.
    A essayer
    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
    Sub Communes()
      Sheets("mag").Cells.Interior.ColorIndex = xlNone
      Dim D1 As Long, D2 As Long, I1 As Long, I2 As Long
      Dim T1, T2 'tableaux des colonnes C&E et C&I
      D1 = Sheets("données").Cells(Rows.Count, 1).End(xlUp).Row
      T1 = Sheets("données").Range("C1:E" & D1)
      With Sheets("mag")
        D2 = .Cells(Rows.Count, 1).End(xlUp).Row
        T2 = .Range("C1:I" & D2)
        For I1 = 1 To D1
          For I2 = 1 To D2
            '1 pour C, 3 por E et 7 pour I
            If T1(I1, 1) & T1(I1, 3) = T2(I2, 1) & T2(I2, 7) Then
              .Rows(I2).Interior.ColorIndex = 3
            End If
          Next
        Next
      End With
    End Sub

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Je suis du même avis que OrDonc en ce qui concerne l'utilisation des tableaux.
    Par contre attention avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If T1(I1, 1) & T1(I1, 3) = T2(I2, 1) & T2(I2, 7) Then
    26&4 = 2&64 et pourtant 26<>2 et 4<>64

    De plus si des doublon sont présent dans T1 on peut aussi rajouter un petit quelque chose pour éviter de re-parcourir le T2 pour rien, puisque les lignes qui le doivent sont déjà colorées.
    En reprenant le code de OrDonc ça donne un truc comme ça (pas testé)
    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
    Sub Communes()
      Sheets("mag").Cells.Interior.ColorIndex = xlNone
      Dim D1 As Long, D2 As Long, I1 As Long, I2 As Long
      Dim T1, T2 'tableaux des colonnes C&E et C&I
      D1 = Sheets("données").Cells(Rows.Count, 1).End(xlUp).Row
      T1 = Sheets("données").Range("C1:E" & D1)
      With Sheets("mag")
        D2 = .Cells(Rows.Count, 1).End(xlUp).Row
        T2 = .Range("C1:I" & D2)
        For I1 = 1 To D1
          For I2 = 1 To D2
     
            '1 pour C, 3 por E et 7 pour I
            If T1(I1, 1) = T2(I2, 1) Then
                If T1(I1, 3) = T2(I2, 7) Then
                    If .Rows(I2).Interior.ColorIndex = 3 Then
                        Exit For 'Inutile de continuer, la valeur de T1 a déjà ete traitée (cas de doublon dans T1)
                    Else
                        .Rows(I2).Interior.ColorIndex = 3
                    End If
                End If
            End If
          Next
        Next
      End With
    End Sub
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Comparaison de données dans un tableau
    Par Azertime dans le forum LabVIEW
    Réponses: 3
    Dernier message: 13/05/2007, 00h13
  2. [VBA-E] Comparaison de donnée + Msgbox
    Par GardienDuCode dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 01/03/2007, 10h55
  3. comparaison de données
    Par fbu78 dans le forum Access
    Réponses: 2
    Dernier message: 01/02/2007, 09h06
  4. Comparaison de données entre deux arrays
    Par sironimo dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 20/04/2006, 18h44
  5. Comparaison des données de deux schéma de mêmes structure
    Par Moez Sokrati dans le forum Oracle
    Réponses: 1
    Dernier message: 28/03/2006, 19h24

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