Problèmes avec une boucle VBA
Nanix
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
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!!!!
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!!!!
A voir également:
- Problèmes avec une boucle VBA
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
1 réponse
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...
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 .
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 .