Décalage surlignage

Résolu
melinette35 Messages postés 68 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 27 juillet 2012 - 5 juin 2012 à 19:53
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 7 juin 2012 à 10:29
Bonjour, suite à un nouveau problème haut en couleur, je reviens vers vous.

Je cherche à surligner dans le fichier referenceX les lignes qui sont pareilles que dans Nom1. Pour la ligne B colonne 1 à 9 surlignes.

Cependant voici les trois solutions que j'ai trouvées, et qui bien évidemment ne marchent pas:
- La solution entirerow qui surligne l'ensemble de la ligne, ce que je ne souhaite pas.

- la solution (commentaire dans macro); cel.Range(Cells(B, 1), Cells(B, 9)).Interior.ColorIndex = 25
avec cette ligne, j'ai bien le surlignage mais de la colonne 3 à 11, il y a donc un décalage de deux colonnes.

- Ma dernière solution: 'cel.offset(,-2).Range(Cells(B, 1), Cells(B,9)).Interior.ColorIndex = 26
avec cette ligne, j'ai bien les colonnes 1 à 9 de surligner. Cependant, les lignes ne correspondent plus (décalage de 2)

Voici mon problème illustrer:


        Set referenceX = Workbooks(NomX).Worksheets("sheet1")
            Y = referenceX.Range("B3").End(xlDown).Row ' on calcule le nombre de ligne dans le fichier référence
    
       
            For B = 4 To Y
                 Set cel = Test.Range(Test.[C3], Test.Cells(Z, 3)).Find(referenceX.Cells(B, 7))

                     If Not cel Is Nothing Then
                      firstAddress = cel.Address
                        Do
                            Set cel = Test.Range(Test.[C3], Test.Cells(Z, 3)).FindNext(cel)
        
                            If cel.Offset(, 1) = referenceX.Cells(B, 8).Value Then
                                'cel.Range(Cells(B, 1), Cells(B, 9)).Interior.ColorIndex = 25
                               cel.EntireRow.Interior.ColorIndex = 26
                               'cel.offset(,-2).Range(Cells(B, 1), Cells(B, 9)).Interior.ColorIndex = 26
                            Else
                            End If
            
                        Loop While Not cel Is Nothing And cel.Address <> firstAddress

                    End If
            Next B


J'espère avoir été claire dans mes explications, merci de me demander plus d'infos si besoin.

Je vous remercie de votre aide.

21 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 juin 2012 à 10:29
Etonnant !
et qu'avais-dit ?
mercredi 6 juin 2012 à 07:32:03
Attention, hein :

un range se définit par une cellule de départ cells(x0,y0) et une cellule de fin cells(x1,y1)

=>>>
Cells(x0,y0) et cells(x1,y1) concernent la feuille active et ne sont pas :
cel.cells(x0,0) et cel.cells(x1,y1)

Ceci étant dit : je vois maintenant exactement ce que tu voulais faire.
Je reviens donc cet après-midi avec un code à exécution nettement plus rapide. Tu verras.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous