Comparer cellules de 2 feuilles excel VBA
kat77
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
super -
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
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:
- Comparer deux feuilles excel et afficher différence vba
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Nombre de jours entre deux dates excel - Guide
- Différence entre tcp et udp - Guide
- Si et excel - Guide
8 réponses
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...
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...
super
super
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
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
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 :
ou alors :
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
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
Il faut, une fois tout sélectionner, aller dans format puis cellule puis motif, tu choisis ta couleur et enfin OK
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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.
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.
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
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