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 cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut Comparaison de cellules
    Bonjour,

    Voilà VBA c'est nouveau pour moi, je travaille sur un petit projet et je rencontre des difficultés:

    1- j'ai deux colonnes dans une feuille Excel colonne B et C ou il y a des infos

    dans une autre feuille, j'ai une colonne A où les infos contenues dans B et C figurent plus d'autres infos.

    Mon problème -----> je voudrais par le biais d'une macro comparer le contenu de chaque cellule de A avec le contenu de B et C s'il trouve une correspondance il me colorie la cellule avec du jaune si la correspondance est dans B ou il me colorie en Bleu si dans C

    sinon il fait rien et il passe à la cellule suivante et ainsi de suite jusqu'à la fin.




    D'avance MERCI

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    Salut PiliSql,

    voila une macro que j'ai créé qui devrait faire ton bonheur !
    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
     
    Sub Comparer_Click()
    With Worksheets("Sheet1").Range("b:b")
                For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
                mavar = ActiveWorkbook.Sheets("Sheet2").Range("a" & n)
                Set c = .Find(mavar, LookIn:=xlValues, Lookat:=xlWhole)
              ' eviter une erreur si c.row ne retourne pas de valeur
                If Not c Is Nothing Then
                ligne = c.Row
                End If
                If ActiveWorkbook.Sheets("Sheet2").Range("a" & n).Value = Worksheets("Sheet1").Range("b" & ligne) Then
                Sheet2.Range("a" & n).Interior.ColorIndex = 6
                End If
                Next
    End With
    With Worksheets("Sheet1").Range("c:c")
                For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
                mavar = ActiveWorkbook.Sheets("Sheet2").Range("a" & n)
                Set c = .Find(mavar, LookIn:=xlValues, Lookat:=xlWhole)
              ' eviter une erreur si c.row ne retourne pas de valeur
                If Not c Is Nothing Then
                ligne = c.Row
                End If
                If ActiveWorkbook.Sheets("Sheet2").Range("a" & n).Value = Worksheets("Sheet1").Range("c" & ligne) Then
                Sheet2.Range("a" & n).Interior.ColorIndex = 5
                End If
                Next
    End With
    End Sub
    J'ai donc pris en consideration tes 2 feuilles (Sheet1 et Sheet2). Sheet1 est la feuille contenant les colonnes B et C et Sheet2 la colonne A a comparer. Voir le fichier joint pour tester...

    Dis moi si ca te conviens.

    P.S : pour les experts, je débute en VBA, alors s'il ya un code plus simple, faites le moi savoir

    A+
    Fichiers attachés Fichiers attachés

  3. #3
    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 : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

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

    Ci-dessous une solution éventuelle
    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
    Sub test()
    Dim i As Integer
     
    With Sheets(1)
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            Set c = Sheets(2).Range("B:C").Find(.Cells(i, 1), , , xlWhole)
            If Not c Is Nothing Then
                If c.Column = 2 Then
                    .Cells(i, 1).Interior.ColorIndex = 6
                Else
                    .Cells(i, 1).Interior.ColorIndex = 5
                End If
            End If
        Next
    End With
     
    End Sub
    Il faut adapter les noms des deux feuilles :
    Sheets(1) = Sheets("nom de la feuille colonne A")
    Sheets(2) = Sheets("nom de la feuille colonnes B et C")

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    EH oui.. Fring, t'as solution est beaucoup mieux que la mienne.

    Tu es mon maitre

  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 : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par Mimosa777 Voir le message
    EH oui.. Fring, t'as solution est beaucoup mieux que la mienne.
    L'idée est la même juste que...comme je suis un peu fainéant , je fais la recherche sur les deux colonnes dans la même boucle.

    Juste pour info concernant ActiveWorkbook, il n'est pas besoin de le préciser, il n'ira pas chercher ailleurs, par défaut il s'exécutera dans le classeur actif.

  6. #6
    Membre averti
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    Merci Bcp.

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

Discussions similaires

  1. [Debutante] Problème comparaison de cellules Excel
    Par Danae123 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/06/2007, 09h28
  2. boucle de comparaison de cellule et action conditionnelle
    Par PHPdudimanche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/05/2007, 09h40
  3. comparaison de cellule excel
    Par noir_desir dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/11/2006, 10h56
  4. comparaison des cellules
    Par corwin44 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/09/2006, 16h12
  5. Comparaison de cellule
    Par helenafr dans le forum Access
    Réponses: 1
    Dernier message: 14/03/2006, 18h32

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