Comparer cellules de 2 feuilles excel VBA

kat77 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 super -
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
A voir également:

8 réponses

phadeb Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   21
 
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...
14
super
 
super
0
hervitch
 
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
4
hamidoux
 
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
1
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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 
0
pecheur63 Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   26
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kat77 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Jehnkira
 
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
0
pecheur63 Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   26
 
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.
-1
kat77 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
-2