Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VB] modifier le format de cellules losqu'une condition est remplie

6 réponses
Avatar
Jean-François LEGRAS
Bonjour à vous,


J'ai un nouveau petit problème :

Je souhaiterais lorsque une cellule en colonne T est vide que les caractères
du champ "U:AE" soit blancs.

J'ai essayé :

Dim e As Range

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,
30)).Font.ColorIndex = 2
End If

Next e



Mais ca ne marche pas. J'ai également essayé d'autres choses mais rien non
plus.

Si vous pouviez m'aider, je serais le plus heureux des hommes !

Merci d 'avance,

Slts

JF

6 réponses

Avatar
Jean-François Aubert
Salut,

rajoute .Address


Range(ActiveCell.Offset(0, 19).Address, ActiveCell.Offset(0,
30).Address).Font.ColorIndex = 2


--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Jean-François LEGRAS" a écrit dans le message de news:

Bonjour à vous,


J'ai un nouveau petit problème :

Je souhaiterais lorsque une cellule en colonne T est vide que les
caractères du champ "U:AE" soit blancs.

J'ai essayé :

Dim e As Range

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,
30)).Font.ColorIndex = 2
End If

Next e



Mais ca ne marche pas. J'ai également essayé d'autres choses mais rien non
plus.

Si vous pouviez m'aider, je serais le plus heureux des hommes !

Merci d 'avance,

Slts

JF





Avatar
francois.forcet
On 16 fév, 17:02, "Jean-François LEGRAS" wrote:
Bonjour à vous,

J'ai un nouveau petit problème :

Je souhaiterais lorsque une cellule en colonne T est vide que les caract ères
du champ "U:AE" soit blancs.

J'ai essayé :

Dim e As Range

    For Each e In Range("T4", Range("T65536").End(xlUp))
    If e = "" Then
    Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,
30)).Font.ColorIndex = 2
    End If

Next e

Mais ca ne marche pas. J'ai également essayé d'autres choses mais rien non
plus.

Si vous pouviez m'aider, je serais le plus heureux des hommes !

Merci d 'avance,

Slts

JF


Salut JF

J'ai essayé ton code
Si tu veux que les caractères des champs U:AE soient colorés en
fonction de la variable "e"
il faut que ta ligne :
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,>
30)).Font.ColorIndex = 2
suive la variable "e" et notamment ta cellule active
Ce qui n'est pas le cas

Je te propose ton code modifié ainsi :

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range("U" & e.Row, "AE" & e.Row).Font.ColorIndex = 2
End If
Next

Celà devrait mieux aller

Dis moi !!!!

Avatar
Frédéric Sigonneau
Tu tiens vraiment à passer par du code ?
Parce qu'une mise en forme conditionnelle le fait..
En supposant que la cellule test (vide ou non) soit T1, sélectionne les colonnes
U:AE et mets comme condition

=$T$1=""

et police blanche comme format.

Si tu cherches seulement à rendre visible ou non les données d'une ligne Ux:AEx
dont la cellule en colonne T est vide ou non, modifie la formule :

=$T1=""

FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Bonjour à vous,


J'ai un nouveau petit problème :

Je souhaiterais lorsque une cellule en colonne T est vide que les caractères
du champ "U:AE" soit blancs.

J'ai essayé :

Dim e As Range

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,
30)).Font.ColorIndex = 2
End If

Next e



Mais ca ne marche pas. J'ai également essayé d'autres choses mais rien non
plus.

Si vous pouviez m'aider, je serais le plus heureux des hommes !

Merci d 'avance,

Slts

JF





Avatar
MichDenis
Dans le module de ta feuille, copie ceci :


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rg As Range
If Not Intersect(Target, Columns(20)) Is Nothing Then
' On Error Resume Next
Set rg = Columns(20).SpecialCells(xlCellTypeBlanks)
If Err <> 0 Then
Err = 0
Exit Sub
Else
Columns(20).Offset(, 1).Resize(, 11).Interior.ColorIndex = none
For Each area In rg.Areas
area.Offset(, 1).Resize(, 11).Interior.ColorIndex = 3
Next
End If
End If

End Sub





"Jean-François LEGRAS" a écrit dans le message de news:

Bonjour à vous,


J'ai un nouveau petit problème :

Je souhaiterais lorsque une cellule en colonne T est vide que les caractères
du champ "U:AE" soit blancs.

J'ai essayé :

Dim e As Range

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,
30)).Font.ColorIndex = 2
End If

Next e



Mais ca ne marche pas. J'ai également essayé d'autres choses mais rien non
plus.

Si vous pouviez m'aider, je serais le plus heureux des hommes !

Merci d 'avance,

Slts

JF
Avatar
MichDenis
comme il s'agit de modifier la couleur du texte,
tu dois changer : ).Interior.ColorIndex par Font.ColorIndex
dans la procédure soumise



"MichDenis" a écrit dans le message de news:

Dans le module de ta feuille, copie ceci :


Private Sub Worksheet_Change(ByVal Target As Range)
Dim rg As Range
If Not Intersect(Target, Columns(20)) Is Nothing Then
' On Error Resume Next
Set rg = Columns(20).SpecialCells(xlCellTypeBlanks)
If Err <> 0 Then
Err = 0
Exit Sub
Else
Columns(20).Offset(, 1).Resize(, 11).Interior.ColorIndex = none
For Each area In rg.Areas
area.Offset(, 1).Resize(, 11).Interior.ColorIndex = 3
Next
End If
End If

End Sub





"Jean-François LEGRAS" a écrit dans le message de news:

Bonjour à vous,


J'ai un nouveau petit problème :

Je souhaiterais lorsque une cellule en colonne T est vide que les caractères
du champ "U:AE" soit blancs.

J'ai essayé :

Dim e As Range

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,
30)).Font.ColorIndex = 2
End If

Next e



Mais ca ne marche pas. J'ai également essayé d'autres choses mais rien non
plus.

Si vous pouviez m'aider, je serais le plus heureux des hommes !

Merci d 'avance,

Slts

JF
Avatar
Jean-François LEGRAS
GENIAL !!

Merci beaucoup à vous tous !

François, ca marche nickel. Je me penche sur la formule pour mieux
comprendre, mais en tous cas parfait !

Bonne nuit !

JF


a écrit dans le message de news:

On 16 fév, 17:02, "Jean-François LEGRAS" wrote:
Bonjour à vous,

J'ai un nouveau petit problème :

Je souhaiterais lorsque une cellule en colonne T est vide que les
caractères
du champ "U:AE" soit blancs.

J'ai essayé :

Dim e As Range

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,
30)).Font.ColorIndex = 2
End If

Next e

Mais ca ne marche pas. J'ai également essayé d'autres choses mais rien non
plus.

Si vous pouviez m'aider, je serais le plus heureux des hommes !

Merci d 'avance,

Slts

JF


Salut JF

J'ai essayé ton code
Si tu veux que les caractères des champs U:AE soient colorés en
fonction de la variable "e"
il faut que ta ligne :
Range(ActiveCell.Offset(0, 19), ActiveCell.Offset(0,>
30)).Font.ColorIndex = 2
suive la variable "e" et notamment ta cellule active
Ce qui n'est pas le cas

Je te propose ton code modifié ainsi :

For Each e In Range("T4", Range("T65536").End(xlUp))
If e = "" Then
Range("U" & e.Row, "AE" & e.Row).Font.ColorIndex = 2
End If
Next

Celà devrait mieux aller

Dis moi !!!!