[VBA] colorier une ligne avec conditions

Fermé
frenchfries Messages postés 2 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 7 juin 2007 - 7 juin 2007 à 15:45
frenchfries Messages postés 2 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 7 juin 2007 - 7 juin 2007 à 16:40
Bonjour,
je suis nouveau ici et novice sur VBA mais j'essaye de m'améliorer!
Alors mon probleme du moment:
j'ai deux feuilles excel remplies de données (une de 16000 ligne et une de 160 lignes environ)
Ce que je veux c'est que si les données de 2 colonnes sur une même ligne sont égales dans l'autre document alors on surligne la ligne en rouge.

(je sais pas si c'est très clair mais bon..)

alors mon code c'est ça pour l'instant

Sub colorier()

For i = 1 To 172
For j = 1 To 15813
If Worksheets("pc").Range("T" & i) = Worksheets("eu").Range("F" & j) And Worksheets("pc").Range("I" & i) = Worksheets("eu").Range("N" & j) Then


Rows("j:j").Select
Range(Cells(7, j)).Activate
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With

End If

Next j
Next i

End Sub

mais ça colore rien du tout (j'ai vérifier que c'était les bonnes colonnes et le même type d'écriture)
donc help!
en plus utiliser des boucle avec de si nombreuses lignes rend le programme assez lent.

Merci pour l'aide
A voir également:

2 réponses

j'ai fait un programme VB en stage qui faisait un peu la même chose
la difference c'est que j'utilise des boucle while a la place de tes for mais ça fait la même chose voila:
n1 = numero de ligne feuille 1
n2= numero de ligne n2
MaFeuN1=feuille de 160 lignes
MaFeuN2=fruillre 16000 lignes
n1=1
n2=1
While MaFeu1.Cells(n1,"met le numero de ta colone" ).Value <> ""
If (MaFeuN1.Cells(n1, "numero de ta colone1 feuille 1").Value = MaFeuN2.Cells(n2, "numero de ta colonne1 feuille 2").Value And MaFeuN1.Cells(n1, "numero de ta colone2 feuille 1").Value = MaFeuN2.Cells(n2, "numero de ta colonne2 feuille 2").Value) Then
MaFeuN1.Rows(n1).Interior.Color = RGB(255, 255, 0) 'jaune
MaFeuN2.Rows(n2).Interior.Color = RGB(255, 255, 0)'jaune
End If
n1=n1+1
n2=n2+1
wend
voila j'éspére que ça pourra t'aider

mat
3
frenchfries Messages postés 2 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 7 juin 2007
7 juin 2007 à 16:40
Merci Mat pour le message d'aide mais j'ai l'impression que si je fait tourner ton programme, la boucle elle avance pas et on scanne pas toutes les lignes de la feuille de 16000 ligne.
Je sais pas trop..
0