Posez votre question Signaler

Comparer cellules de 2 feuilles excel VBA

kat77 3Messages postés 18 février 2007Date d'inscription - Dernière réponse le 12 mars 2012 à 13:05
Bonjour à tous, je suis débutante en VBA.
Je me casse la tête depuis plusieurs heures sur un problème certainement simplissime...
Voilà j'ai deux tableaux dans deux feuilles excel d'un même classeur. J'aimerais pouvoir coloriser en jaune toutes les cellules de ma feuille 2 qui ne sont pas strictement identiques aux cellules de ma feuille 1.
Les données des deux tableaux sont aussi bien des chaînes de caractères que des données numériques.
Connaissez-vous un programme simple VBA qui me permettrait d'aboutir à ce résultat?
Merci beaucoup d'avance
Lire la suite 

Comparer cellules de 2 feuilles excel VBA »

9 réponses
Réponse
+5
moins plus
Bonjour,

Sub Macro1()
Dim i As Integer
i = 2
While i < 20
If Worksheets("Feuil1").Range("A" + CStr(i)).Value <> Worksheets("Feuil2").Range("A" + CStr(i)).Value Then
Worksheets("Feuil2").Activate
Worksheets("Feuil2").Range("A" + CStr(i)).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
i = i + 1
Wend

End Sub

Evidemment à remplacer par vos données les feuilles, les cellules, la ligne de commencement, la couleur etc...
Ajouter un commentaire
Réponse
+1
moins plus
Sub ColorierBatch()  
    Dim i As Integer  
    Dim nb_ligne As Integer  
    Dim TabLignes() As Integer  
    Dim couleur As Integer  
    Dim j As Integer  
    Dim nb_occurence As Integer  
      
    nb_occurence = 0  
    couleur = 3  
    [J4].Select  
    nb_ligne = 0  
    While ActiveCell.Offset(nb_ligne, 0) <> ""  
        nb_ligne = nb_ligne + 1  
    Wend  
      
    ReDim TabLignes(nb_ligne)  
    For i = 0 To nb_ligne - 1  
        If TabLignes(i) = 0 Then  
            TabLignes(i) = couleur  
            j = i + 1  
            While ActiveCell.Offset(j, 0) <> ""  
                If ActiveCell.Offset(j, 0) = ActiveCell.Offset(i, 0) Then  
                    TabLignes(j) = couleur  
                    ActiveCell.Offset(j, 0).Interior.ColorIndex = couleur  
                    ActiveCell.Offset(i, 0).Interior.ColorIndex = couleur  
                End If  
                j = j + 1  
            Wend  
            couleur = couleur + 1  
        End If  
    Next i  
End Sub



A modifier pour tes besoins, cette macro colorie de meme couleur les valeurs identiques en colone J en commencent par J4
Ajouter un commentaire
Réponse
+1
moins plus
J'ai besoin d'aide sur un petit projet
je cherche à separer une serie de valeur d'une colonne "B" en fonction de la comparaison de la colonne " F"
J'ai ecris ces lignes mais le macro se bloque à la premiere ligne d'instruction

Sub determination_des_droites()


Dim i%, j%, k%
Dim valeur As Long


If Range("F" + CStr(i)) = Range("F" + CStr(i - 1)) Then

Range("j", CStr(k)) = Range("B", i)

Else: j = j + 1 And k = 0 And Range("j", CStr(k)) = Range("B", i)

End If

i = i + 1

End Sub
pijaku- 12 mars 2012 à 13:05
Bonjour,
Affecte, au préalable, une valeur, supérieure strictement à 1, à i.
En effet, si i n'a pas de valeur, i = 0. Or Excel ne connais pas de ligne 0.
Si tu affectes 1 à i, i-1 = 0 ==> même problème...
Donc pour commencer, i = 2...
Soit :
Dim i%, j%, k% 
Dim valeur As Long 

i = 2
If Range("F" + CStr(i)) = Range("F" + CStr(i - 1)) Then 

ou alors :
Dim i%, j%, k% 
Dim valeur As Long 

i = 1
If Range("F" + CStr(i)) = Range("F" + CStr(i + 1)) Then 
Ajouter un commentaire
Réponse
+0
moins plus
euh..j'ai dû mal m'exprimer..je sais comment mettre une cellule en couleur...quand même! lol
Ce que je veux, c'est pouvoir écrire un programme VBA qui compare automatiquement deux feuilles excel et fait ressortir par de la couleur ou en gras, toutes les cellules de la 2ème feuille qui ne sont pas identiques aux cellules de la feuille 1...

Je vous remercie beaucoup d'avance de m'aider parce que je patauge toujours...

Merci quand même Pécheur
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Ma demande est à peu près identique à celle de Kat77 mais les deux feuilles (toutes les deux nommées Feuill1)sont sur deux fichiers différents (Fichier 1 et fichier 2).

Quelqu'un peut il me dire comment adapter le code de Phadeb mais pour deux fichiers différents.

Merci d'avance pour votre aide

Jehnkira
Ajouter un commentaire
Réponse
-1
moins plus
Bonjour,
Clic en haut de ta feuille dans la p1ère cellule et garde appuyer sur la souris à gauche tou en sélectionnant toute ta zone à colorer, normalement ça marche.
Ajouter un commentaire
Réponse
-1
moins plus
je ne t'ai pas tout indiquer
Il faut, une fois tout sélectionner, aller dans format puis cellule puis motif, tu choisis ta couleur et enfin OK
Ajouter un commentaire
Réponse
-2
moins plus
Voici le programme que j'ai essayé de lancer mais les résultats sont incohérents :

Sub Modif()

Dim Cellule1 As Object, Cellule2 As Object
Worksheets("feuil1").Activate
Selection.CurrentRegion.Select
For Each Cellule1 In Selection
Worksheets("feuil2").Activate
Selection.CurrentRegion.Select
For Each Cellule2 In Selection
If Cellule1 <> Cellule2 Then
Cellule2.Interior.ColorIndex = 6
Else
Cellule2.Interior.ColorIndex = 3
Exit For
End If
Next Cellule2
Worksheets("feuil1").Activate
Next Cellule1
End Sub
Ajouter un commentaire
Ce document intitulé « comparer cellules de 2 feuilles excel VBA » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?