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

FormatConditions

3 réponses
Avatar
M41
Bonsoir



La macro ci-dessous modifie conditionnellement l'apparence

d'une colonne de dates

37257 est un n° d'ordre de date (01/01/2002)

Si je met une addresse à la place de cellule ça marche

mais avec une formule DATEVAL("01/01/1 & STXT(H1;26;4)) ça ne marche pas
(H1=2002)

Si je mets A, ça ne marche pas (A validé comme nombre en chaîne).



Mon problème :

comment remplacer 37257 par une variable et non une addresse de cellule ?



Cordialement



Sub Macro4()

Dim F As Worksheet, A As Variant, T As String

A = Worksheets("W").Range("B7").Value

If Not IsNumeric(A) Then Exit Sub

T = ActiveSheet.Name

With Worksheets(T)

With .Range(.Cells(2, 8), .Cells(100, 8))

.FormatConditions.Delete

With .FormatConditions.Add(xlCellValue, xlLess, "37257")

.Font.Italic = True

End With

End With

End With

End Sub

3 réponses

Avatar
JB
Bonsoir,

La fonction Date(Année;Mois;Jour) (ou DateSerial() en VBA) devrait
convenir.

Cordialement JB

Bonsoir



La macro ci-dessous modifie conditionnellement l'apparence

d'une colonne de dates

37257 est un n° d'ordre de date (01/01/2002)

Si je met une addresse à la place de cellule ça marche

mais avec une formule DATEVAL("01/01/1 & STXT(H1;26;4)) ça ne marche pas
(H1 02)

Si je mets A, ça ne marche pas (A validé comme nombre en chaîne).



Mon problème :

comment remplacer 37257 par une variable et non une addresse de cellule ?



Cordialement



Sub Macro4()

Dim F As Worksheet, A As Variant, T As String

A = Worksheets("W").Range("B7").Value

If Not IsNumeric(A) Then Exit Sub

T = ActiveSheet.Name

With Worksheets(T)

With .Range(.Cells(2, 8), .Cells(100, 8))

.FormatConditions.Delete

With .FormatConditions.Add(xlCellValue, xlLess, "37257")

.Font.Italic = True

End With

End With

End With

End Sub


Avatar
MichDenis
J'ai pas tout saisi mais si la questtion est :

| comment remplacer 37257 par une variable et non une addresse de cellule ?


'-----------------------------
Sub Macro4()

Dim x As Long
x = 37257

Dim F As Worksheet, A As Variant, T As String
A = Worksheets("Feuil1").Range("B7").Value

If Not IsNumeric(A) Then Exit Sub
T = ActiveSheet.Name
With Worksheets(T)
With .Range(.Cells(2, 8), .Cells(100, 8))
.FormatConditions.Delete
With .FormatConditions.Add(xlCellValue, xlLess, x)
.Font.Italic = True
End With
End With
End With
End Sub
'-----------------------------
Avatar
M41
Bonjour & merci

En fait c'est ça mais comme j'avais observé dans l'aide(?) VBA que le nombre
était rentré sous forme de chaîne ( "37257" ), j'utilisais la variable A
Pour moi ce sera OK si x ,forme convertie de A en long, est accepté.
Je vais tester....

Cordialement

M41





"MichDenis" a écrit dans le message de news:
eIEfk%
J'ai pas tout saisi mais si la questtion est :

| comment remplacer 37257 par une variable et non une addresse de cellule
?


'-----------------------------
Sub Macro4()

Dim x As Long
x = 37257

Dim F As Worksheet, A As Variant, T As String
A = Worksheets("Feuil1").Range("B7").Value

If Not IsNumeric(A) Then Exit Sub
T = ActiveSheet.Name
With Worksheets(T)
With .Range(.Cells(2, 8), .Cells(100, 8))
.FormatConditions.Delete
With .FormatConditions.Add(xlCellValue, xlLess, x)
.Font.Italic = True
End With
End With
End With
End Sub
'-----------------------------