Bonjour,

J'ai quelques problemes avec le range/cells select.

J'ai un tableau à 7 colonnes et et une dizaine de lignes. Je dois comparer les lignes 2 par 2 et mettre en couleur les différences.

Exemple

Montant / Valeur / date
a/b/c
a/b/c
d/e/f
d/e/g

Mon but est de comparer les deux premières lignes entre elles (pas d'erreurs) et les deux suivantes entre elles (et mettre f et g en couleur).

Pour ce faire, j'ai ce code :

Mon h représente le numéro de ligne, glissant donc de 2 en 2
i est le numéro de colonne glissant colonne par colonne
Nb_ligne_reporting est le nombre de ligne du tableau

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 h = 3
 i = 2
Nb_ligne_reporting = Application.WorksheetFunction.CountA(Workbooks("Reporting").Worksheets("Rapport").Range("B2:B1000"))+1
 
Do While h <= Nb_ligne_reporting
    For i = 2 To 12
       If Cells(h - 1, i) <> Cells(h, i) Then
                Cells(h - 1, i).Select
                With Selection.Interior
                          .Color = 255
                End With
 
                Cells(h, i).Select
                With Selection.Interior
                                .Color = 255
                 End With
          End If
  Next i
h=h+2
loop

----> Mon problème est que, quand je teste, je reçois :

Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet

Quand je fais F8, je vois que le probleme vient de Cells.select


Étonnement, quand je retire ce code de ma procédure et que je la met dans une autre, elle fonctionne ! Mais dès que je l'appelle par un call dans la première, ça ne marche plus !!!

Avez vous une idée ?