Problèmes avec une boucle VBA

Fermé
Nanix - 22 oct. 2013 à 22:58
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 23 oct. 2013 à 00:09
Bonjour,

j'essaie de créer une automatisation des codes couleurs à partir de 4 cellules sur la droite.
Si le client peut nous fournir 3 types de clientèle, alors mettre nom en rouge,
2 types de clientèle alors mettre nom en jaune
ainsi de suite.

J'ai cherché partout et je ne trouve pas pourquoi la boucle ne s'exécute pas normalement.
Il souligne bien que quelques lignes au début et le reste devient gris. De plus, quand je change les champs et je reéssaie la macro, il ne change plus aucune couleur.

Voici le code:

Sub Surligner()
Dim var_compteur As Integer
var_compteur = 0

For i = 6 To 1000
If Cells(i, 11).Value Like "*encore*" Then
var_compteur = var_compteur + 1
Else
var_compteur = var_compteur + 0
End If
If Not Cells(i, 12).Value = 0 And Not Cells(i, 13).Value Like "" Then
var_compteur = var_compteur + 1
Else
var_compteur = var_compteur + 0
End If
If Cells(i, 14).Value Like "*encore*" Then
var_compteur = var_compteur + 1
Else
var_compteur = var_compteur + 0
End If



If var_compteur = 3 Then
Range("A" & i & ":j" & i).Interior.Color = RGB(255, 0, 0)
ElseIf var_compteur = 2 Then
Range("A" & i & ":j" & i).Interior.Color = RGB(255, 255, 0)
ElseIf var_compteur = 1 Then
Range("A" & i & ":j" & i).Interior.Color = RGB(0, 255, 0)
ElseIf var_compteur = 0 Then
Range("A" & i & ":j" & i).Interior.Color = RGB(0, 0, 255)
End If
If Cells(i, 11).Value = "" Or Cells(i, 12).Value = "" Or Cells(i, 13).Value = "" Or Cells(i, 14).Value = "" Then
Range("A" & i & ":j" & i).Interior.Color = RGB(128, 128, 128)
End If

Next

End Sub

Merci beaucoup!!!!

1 réponse

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 23/10/2013 à 00:22
Bonjour,
Le i n'est pas déclarer ET var_compteur = 0 n'est pas bien positionner
Et ton dernier test ne laisse passer que la condition 3

Toutefois ton code un peu améliorer...
Sub Surligner()
Dim var_compteur As Integer, i As Integer
Application.ScreenUpdating = False
For i = 6 To 30
var_compteur = 0
var_compteur = var_compteur + Abs(Cells(i, 11).Value Like "*encore*")
var_compteur = var_compteur + Abs(Cells(i, 12) <> 0 And Cells(i, 13) <> "")
var_compteur = var_compteur + Abs(Cells(i, 14).Value Like "*encore*")

With Range("A" & i & ":j" & i)
Select Case var_compteur
Case 3: .Interior.Color = RGB(255, 0, 0)
Case 2: .Interior.Color = RGB(255, 255, 0)
Case 1: .Interior.Color = RGB(0, 255, 0)
Case 0: .Interior.Color = RGB(128, 128, 128)
End Select
End With
Next

End Sub

A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0