[VBA-E]Colorier cellule selon instruction

Fermé
prog10 - 29 mai 2009 à 14:42
 Active directory - 19 juin 2009 à 09:45
Bonjour,
J'ai besoin de recréer les action d'une mise en forme conditionelle, j'ai deja chercher quelque chose qui aurait
pu s'en rapprocher et je n'ai pas trouvé.

J'ai une colonne A et une autre B.
Si A30 est renseigné je veux que la cellule B30 devienne bleu si elle n'est pas remplit.
et si B30 est renseigné, je veux que la cellule A30 devienne bleu si elle n'est pas remplit.
Lorsque la cellule bleu est renseignée elle repasse en blanc par défaut.
Et cette macro agit sur toutes les lignes de A et B, même la 5000ieme.

Quelque chose comme ca :
Private Sub Color_cell()
If Len(Range("A30")) <> ""
Then Range("B30").ForeColor = RGB(51, 51, 255)
Else Range("A30").Value = vide
End Sub

Quelqu'un à une idée ?
merci!
A voir également:

9 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 mai 2009 à 14:57
Salut,

Tu veux que l'arriere plan soit coloré ou la police de caractères.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 mai 2009 à 15:09
Re,

Tu peux essayer (je n'ai pas testé)
Private Sub Color_cell()
    For i = 1 To ActiveSheet.UsedRange.Rows.Count
        If Cells(i, 1) <> "" Then
            If Cells(i, 2) = "" Then
                Cells(i, 2).Interior.Color = RGB(51, 51, 255)
            End If
        ElseIf Cells(i, 2) <> "" Then
            If Cells(i, 1) = "" Then
                Cells(i, 1).Interior.Color = RGB(51, 51, 225)
            End If
        End If
    Next
End Sub

0
C'est la couleur de fond de la cellule que je veux colorier.
Je n'ai pas compris pour quoi tu utilise une boucle I ?si je veux que la cellule soit bien définit par exemple : A30 et B30.
Pourquoi ne pas utiliser range ?
J'ai testé ton code et ca n'a pas l'air de fonctionner.
merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 mai 2009 à 15:19
Re,

La boucle c'est pour ça
Et cette macro agit sur toutes les lignes de A et B, même la 5000ieme.
Je ne pense pas que tu veux écrire le même code 5000 fois.

Pourquoi ne pas utiliser range ?
Puisque je n'avais pas envie ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 mai 2009 à 15:22
Re,

Voici pour A30 seulement, tu n'as qu'à adapter
Private Sub Color_cell()
If Range("A30") <> "" Then
Range("B30").Interior.Color = RGB(51, 51, 255)
End If
End Sub
0
lami20j ton code fonctionne mais je voudrai lorsque A30 est vide, B30 redevienne blanc.

Private Sub Color_cell()
If Range("A30") <> "" Then
Range("B30").Interior.Color = RGB(51, 51, 255)
ElseIf Range("A30") = "" Then
Range("B30").Interior.Color = RGB(255, 255, 255)
End If
End Sub

Mon code ne marche pas merci de m'aider !
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 mai 2009 à 17:42
Re,

Essaie
Private Sub Color_cell()
    If Range("A30") <> "" Then
        Range("B30").Interior.Color = RGB(51, 51, 255)
    ElseIf Range("A30") = "" Then
        Range("B30").Interior.ColorIndex = RGB(FF, FF, FF)
    End If
End Sub
0
Re,

La coloration de la cellule marche bien mais pour l'instant je tape quelque chose dans A, B se colorit, mais si j'efface ce qui est dans A ou dans B les cellules ne redeviennent pas à la couleur par défault.
Comment faire ?

Merci !
0
Active directory
19 juin 2009 à 09:45
Quelqu'un sait ?
0