Operateur > et < pour automatisation vba mise en forme conditionnel

lanzarotte

XLDnaute Nouveau
Bonjour à tous !
Je cherche à automatiser une mise en forme conditionnelle sous vba excel. Mon problème est que je dois rentrer une formule qui compare la valeur de deux cellules. Or je n'arrive pas à utiliser < et >.
Je recherche l'operateur inféreur en francais (car je manipule des dates en format francais) type Imp ou eqv qui si j'ai bien compris compare.

En effet, ESTVIDE() fonctionne alors que "=""" ne fonctionne pas

Mon Code :

Dim Condition1 as String
Dim B As Range
Dim A As Range
Dim C As Range

Cells(3,3).Select

Set B = Cells(6, 7)
Set A = Cells(6, 8)
Set C = Cells(6, 9)

Condition1 = "=ET(ESTVIDE(" & B.Address(False, False) & ");ESTVIDE(" & A.Address(False, False) & ");" & ICI JE VOUDRAIS METTRE A EST INFERIEUR à B & ")"

With Selection
'Supprime les MFC existantes
.FormatConditions.Delete

.FormatConditions.Add Type:=xlExpression, Formula1:=Condition1

With .FormatConditions(1)
'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
.Interior.Color = RGB(255, 0, 0) 'Rouge

End With
End With


merci de votre aide !
 

Efgé

XLDnaute Barbatruc
Re : Operateur > et < pour automatisation vba mise en forme conditionnel

Bonjour lanzarotte,
Vraiment pas sur d'avoir compris, mais une proposition.
Pourquoi utiliser des varables ?
VB:
Sub lanzarotte()
Range("C3").Activate
With Range("C3")
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:="=ET(ESTVIDE(G6);ESTVIDE(H6);C3<B6)"
    .FormatConditions(1).Interior.ColorIndex = 3
End With
End Sub
Cordialement
 
Dernière édition:

lanzarotte

XLDnaute Nouveau
Re : Operateur > et < pour automatisation vba mise en forme conditionnel

Merci pour ta réponse !
En fait, j'ai simplifié mon code pour qu'il soit compréhensible mais je n'ai pas C3 et B6 aussi facillement. J'utilise des formules du type :
Set B = Cells(6, MaCellule.Offset(0, -1).Column)
Set A = Cells(6, MaCellule.Column)
je dois construire la condition avec des & mais quand je mets & B.Address & ">" & A.Address & ")" . Cela ne fonctionne pas :(

Si tu as une idée:)
Merci bien déjà de ta première réponse.
 

kjin

XLDnaute Barbatruc
Re : Operateur > et < pour automatisation vba mise en forme conditionnel

Bonjour,
Ne serait ce pas plutot l'opérateur "OU" plutot que "ET" dans la formule ?
Code:
Dim B As Range
Dim A As Range
Dim Cond1 As String

Set B = Cells(6, 7)
Set A = Cells(6, 8)
Cond1 = "=OU(ESTVIDE(" & B.Address & ");ESTVIDE(" & A.Address & ");" & B.Address & "<" & A.Address & ")"

With Cells(3, 3)
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:=Cond1
    With .FormatConditions(1)
        .Interior.Color = RGB(255, 0, 0) 'Rouge
    End With
End With
ou
Code:
Dim B As String
Dim A As String
Dim Cond1 As String

B = Cells(6, 7).Address
A = Cells(6, 8).Address
Cond1 = "=OU(ESTVIDE(" & B & ");ESTVIDE(" & A & ");" & B & "<" & A & ")"

With Cells(3, 3)
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:=Cond1
    With .FormatConditions(1)
        .Interior.Color = RGB(255, 0, 0) 'Rouge
    End With
End With
A+
kjin
 
Haut Bas