Comparer cellules de 2 feuilles excel VBA

kat77 Messages postés 3 Statut Membre -  
 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
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. phadeb Messages postés 91 Statut Membre 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
    1. super
       
      super
      0
  2. 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
  3. 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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  4. pecheur63 Messages postés 351 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kat77 Messages postés 3 Statut Membre
     
    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
  7. 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
  8. pecheur63 Messages postés 351 Statut Membre 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
  9. kat77 Messages postés 3 Statut Membre
     
    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