Comparer cellules de 2 feuilles excel VBA [Fermé]

Signaler
Messages postés
3
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
18 février 2007
-
 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

8 réponses

Messages postés
86
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 mai 2017
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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
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
Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
2 574
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 
Messages postés
314
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
20 octobre 2020
20
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
Messages postés
3
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
18 février 2007

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
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
Messages postés
314
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
20 octobre 2020
20
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.
Messages postés
3
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
18 février 2007

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