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 :

Confrontation 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 averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Par défaut Confrontation de données !
    Bonsoir,

    Je simplifie, j'ai deux colonnes: A (Article1) et B (Article2). Et je souhaite confronter les deux colonnes, parce que certains articles sont dans la colonne A et pas dans la B, et vice versa.

    Et si il y'a une différence, il décale vers le bas la colonne où l'article n'est pas présent, et etc...

    C'est pour me permettre de savoir qu'elles articles sont absents.

    Dans l'attente de réponse.
    Bonne soirée
    fox89

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Un décallage de ligne je crains que ça va donner un résultat inattendu, je verais plutôt une coloration des articles ne se trouvant que dans une seule colonne.
    Teste ceci et dis nous si ça pourrait convenir (articles dans les colonnes A et B pour l'exemple)
    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 test()
    Dim i As Integer, cel As Range, DerL As Integer
    Application.ScreenUpdating = False
     
    Range("A:B").Interior.ColorIndex = xlNone
    DerL = Cells(Rows.Count, 1).End(xlUp).Row
     
    For i = 2 To DerL
        Set cel = Range("B:B").Find(what:=Cells(i, 1), lookat:=xlWhole)
        If Not cel Is Nothing Then
            cel.Interior.ColorIndex = 6
            Cells(i, 1).Interior.ColorIndex = 6
        End If
    Next
     
    Set cel = Nothing
     
    For Each cel In Range("A2:B" & DerL)
        Select Case cel.Interior.ColorIndex
            Case 6: cel.Interior.ColorIndex = xlNone
            Case xlNone: cel.Interior.ColorIndex = 6
        End Select
    Next
     
    Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Par défaut
    C'est génial, c'est pas forcément ce que je voulais, mais ca va me servir pour ca et pour beaucoup d'autres choses !!!!!!

    Merci à toi !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Par défaut
    Ah si, j'ai besoin d'un complément
    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
     
    Sub test()
    Dim i As Integer, cel As Range, DerL As Integer
    Application.ScreenUpdating = False
     
    Range("A:e").Interior.ColorIndex = xlNone
    DerL = Cells(Rows.Count, 1).End(xlUp).Row
     
    For i = 2 To DerL
        Set cel = Range("d:d").Find(what:=Cells(i, 1), lookat:=xlWhole)
        If Not cel Is Nothing Then
            cel.Interior.ColorIndex = 6
            Cells(i, 1).Interior.ColorIndex = 6
        End If
    Next
     
    Set cel = Nothing
     
    For Each cel In Range("A2:d" & DerL)
        Select Case cel.Interior.ColorIndex
            Case 6: cel.Interior.ColorIndex = xlNone
            Case xlNone: cel.Interior.ColorIndex = 40
        End Select
    Next
     
    Range("b:b").Interior.ColorIndex = 0
    Range("c:c").Interior.ColorIndex = 0
     
    Application.ScreenUpdating = True
    End Sub
    Donc une fois que la cellule est colorée, je la décale vers le bas, parce que j'en ai besoin de confronter. Mais j'aimerai que la couleur disparaisse, parce que de l'autre coté la cellule sera vide.
    Je ne sais pas trop comment l'ajouter if xxx="" then
    Ci joint image excel.jpeg !

    Merci d'avance,

    michaël !
    Images attachées Images attachées  

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Si j'ai bien compris essaye ceci, les lignes vides ne sont plus colorées
    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
    Sub test()
    Dim i As Integer, cel As Range, DerL As Integer
    Application.ScreenUpdating = False
     
    Range("A:E").Interior.ColorIndex = xlNone
    DerL = Cells(Rows.Count, 1).End(xlUp).Row
     
    For i = 2 To DerL
        Set cel = Range("D2:D" & DerL).Find(what:=Cells(i, 1), lookat:=xlWhole)
        If Not cel Is Nothing Then
            cel.Interior.ColorIndex = 6
            Cells(i, 1).Interior.ColorIndex = 6
        End If
    Next
     
    Set cel = Nothing
     
    For Each cel In Range("A2:A" & DerL & ",D2:D" & DerL)
        If cel.Value = "" Then
            cel.Interior.ColorIndex = xlNone
        Else
            Select Case cel.Interior.ColorIndex
                Case 6: cel.Interior.ColorIndex = xlNone
                Case xlNone: cel.Interior.ColorIndex = 40
            End Select
        End If
    Next
     
    Application.ScreenUpdating = True
    End Sub

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Par défaut resolu !
    C'est bon !

    Merci bien !

    fox89

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

Discussions similaires

  1. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  2. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51
  3. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31
  4. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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