Colorier une cellule suite a une condition
Résolu
r4944
Messages postés
136
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
Bonjour,
Voici mon code qui me permet de vérifier des champs qui doivent être remplis aussi la vérification d'autres conditions avant qu'il mette un xx dans la cellule 42 si toutes les conditions sont vraies
j'aimerais bien , colorier les cellules qui sont vides après la vérification, j'ai essayé le code ce dessus mais il marche pas vraiment
est ce que vous pourrirez m'aider à trouver mon erreur
merci
Bonjour,
Voici mon code qui me permet de vérifier des champs qui doivent être remplis aussi la vérification d'autres conditions avant qu'il mette un xx dans la cellule 42 si toutes les conditions sont vraies
j'aimerais bien , colorier les cellules qui sont vides après la vérification, j'ai essayé le code ce dessus mais il marche pas vraiment
est ce que vous pourrirez m'aider à trouver mon erreur
merci
Dim c As Integer
Dim q As Integer
Dim MaPlage As Range
For q = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Set MaPlage = Range("A:H, J:R").Rows(q)
For Each c In MaPlage
If IsEmpty(c) Then c.Interior.ColorIndex = 3
If CStr(ActiveSheet.Cells(q, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" _
And WorksheetFunction.CountIf(MaPlage, "") = 0 Then
Select Case UCase(ActiveSheet.Cells(q, 14).Value)
Case "INA_CIN"
ActiveSheet.Cells(q, 42).Value = "XX"
End Select
End If
Next c
Next q
A voir également:
- Colorier une cellule suite a une condition
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Bloquer une cellule excel - Guide
- Diviser une cellule excel en deux horizontalement - Forum Excel
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
4 réponses
Si tu veux aller à la dernière ligne de tes colonnes:
Dim q, q1, q2, q3 As Integer
Dim Col As Range
Dim c As Range
Dim MaPlage As Range
q = Range("A65536").End(xlUp).Row
q1 = Range("H65536").End(xlUp).Row
q2 = Range("J65536").End(xlUp).Row
q3 = Range("R65536").End(xlUp).Row
Set MaPlage = Range("A1:A" & q & ",H1:H" & q1 & ",J1:J" & q2 & ",R1:R" & q3 & "").Columns
For q = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
For Each Col In MaPlage
For Each c In Col.Cells
If Len(c.Value) = 0 Then c.Interior.Color = vbYellow
'If CStr(ActiveSheet.Cells(q, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" _
' And WorksheetFunction.CountIf(MaPlage, "") = 0 Then
' Select Case UCase(ActiveSheet.Cells(q, 14).Value)
' Case "INA_CIN"
' ActiveSheet.Cells(q, 42).Value = "XX"
'End Select
' End If
Next c
Next Col
Next q
salut j'ai reussi a le faire tourner mais le probleme qu'il prend pas toujours en consideration la derniere ligne du tableau c'est bizarre un peu
voici mon code
voici mon code
Dim g As Integer
Dim q As Integer
Dim c As Range
Dim d As Range
Dim MaPlage As Range
For q = 2 To ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Set MaPlage = Range("A:H, J:R").Rows(q)
For Each c In MaPlage.Cells
If Len(c.Value) = 0 Then c.Interior.Color = vbYellow
If CStr(ActiveSheet.Cells(q, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" _
And WorksheetFunction.CountIf(MaPlage, "") = 0 Then
Select Case UCase(ActiveSheet.Cells(q, 14).Value)
Case "INA_CIN"
ActiveSheet.Cells(q, 42).Value = "XX"
End Select
End If
Next c
Next q
| EDIT : Ajout du LANGAGE dans les balises de code.
Explications disponibles ICI Merci d'y penser dans tes prochains messages. |
Dim g As Integer
Dim q As Integer
Dim Col As Range
Dim c As Range
Dim d As Range
Dim MaPlage As Range
For q = 2 To Range("R65536").End(xlUp).Row 'dernière ligne, a adapter à la colonne la plus remplie ici la R
' Set MaPlage = Range("A:H, J:R").Rows(q)
For Each Col In Range("A1:A" & q & ",H1:H" & q & ",J1:J" & q & ",R1:r" & q & "").Columns ' a adapter
For Each c In Col.Cells
If Len(c.Value) = 0 Then c.Interior.Color = vbYellow
'If CStr(ActiveSheet.Cells(q, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" _
' And WorksheetFunction.CountIf(MaPlage, "") = 0 Then
' Select Case UCase(ActiveSheet.Cells(q, 14).Value)
' Case "INA_CIN"
' ActiveSheet.Cells(q, 42).Value = "XX"
'End Select
' End If
Next
Next
Next
pour le savoir on met ceci:
Tu obtiens la dernière ligne de la colonne A. Tu fais donc une boucle sur toutes tes colonnes, de la ligne 2 à la ligne de la dernière ligne de la colonne A. Donc dans les colonnes qui sont plus remplies que la colonne A , le surplus n'est pas pris en compte.
Il faut donc que tu corriges le code en vert dans l'exemple que je t'ai donné. Moi ma boucle parcourt toutes les colonnes pour mettre la coloration. Tel qu'elle est je n'ai aucun bug.
Je ne sais pas où tu as eu ce code, mais il n'est pas bon!
@+ Le Pivert