[VBA] colorier une ligne avec conditions
frenchfries
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
frenchfries Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
frenchfries Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
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:
- [VBA] colorier une ligne avec conditions
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Apparaitre hors ligne instagram - Guide
- Formulaire en ligne de meta - Guide
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
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