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

Code pour un format conditionnel ?

4 réponses
Avatar
LANIMAL
Bonjour,
J'ai établi le code ci-dessous à partir d'un enregistrement de macro en
coordonnées RELATIVES, sur la cellule N3 (1ère ligne de formules).
-------------------------------------
Range("N" & PremLigne).Select
Selection.Font.ColorIndex = 48
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=DROITE(N3;10)<>DROITE(A3;10)"
Selection.FormatConditions(1).Font.Bold = True
Selection.FormatConditions(1).Interior.ColorIndex = 3
-------------------------------------
où l'expression de condition s'écrit en coordonnées absolues.
Je ne suis pas arrivé à écrire la condition en coordonnées relatives.
J'ai essayé, sans succès, de l'écrire en FormulaR1C1 avec RC ou OFFSET
probablement erreur de syntaxe ?
Merci d'avance à mon "dépanneur".
Michel LANIMAL

4 réponses

Avatar
Modeste
Bonsour® LANIMAL avec ferveur ;o))) vous nous disiez :

Bonjour,
J'ai établi le code ci-dessous à partir d'un enregistrement de macro
en coordonnées RELATIVES, sur la cellule N3 (1ère ligne de formules).
-------------------------------------
Range("N" & PremLigne).Select
Selection.Font.ColorIndex = 48
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=DROITE(N3;10)<>DROITE(A3;10)"
Selection.FormatConditions(1).Font.Bold = True
Selection.FormatConditions(1).Interior.ColorIndex = 3
-------------------------------------
où l'expression de condition s'écrit en coordonnées absolues.
Je ne suis pas arrivé à écrire la condition en coordonnées relatives.


le code cidessus est en coordonnées relatives complétes

en absolu ce serait :
="=DROITE($N$3;10)<>DROITE($A$3;10)"
quelles que soient les lignes ou colonnes cibles la condition fera toujour référence à N3 et A3

maintenant si tu ne veux que seulement la ligne soit relative alors
:="=DROITE($N3;10)<>DROITE($A3;10)"
la condition s'adaptera pour les lignes
en :
="=DROITE($N4;10)<>DROITE($A4;10)"
="=DROITE($N5;10)<>DROITE($A5;10)"
etc...

pour les colonnes en relatives
:="=DROITE(N$3;10)<>DROITE(A$3;10)"
la condition s'adaptera pour les colonnes
en :
="=DROITE(P$3;10)<>DROITE(C$3;10)"
="=DROITE(Q$3;10)<>DROITE(D$3;10)"
etc ...

--
--
@+
;o)))

Avatar
LANIMAL
Bonsoir Modeste,
Oui, merci, je suis clair sur ce que tu me dis, mais contrairement à
cette règle, ça ne marche pas pour une condition de format conditionnel.
A savoir, lorsque j'applique le code sur une autre ligne (ex N4 ou N5),
la condition s'écrit toujours =DROITE(N3;10)<>DROITE(A3;10).
Alors, ch'comprends pas !

Bonsour® LANIMAL avec ferveur ;o))) vous nous disiez :

Bonjour,
J'ai établi le code ci-dessous à partir d'un enregistrement de macro
en coordonnées RELATIVES, sur la cellule N3 (1ère ligne de formules).
-------------------------------------
Range("N" & PremLigne).Select
Selection.Font.ColorIndex = 48
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=DROITE(N3;10)<>DROITE(A3;10)"
Selection.FormatConditions(1).Font.Bold = True
Selection.FormatConditions(1).Interior.ColorIndex = 3
-------------------------------------
où l'expression de condition s'écrit en coordonnées absolues.
Je ne suis pas arrivé à écrire la condition en coordonnées relatives.


le code cidessus est en coordonnées relatives complétes

en absolu ce serait :
="=DROITE($N$3;10)<>DROITE($A$3;10)"
quelles que soient les lignes ou colonnes cibles la condition fera toujour référence à N3 et A3

maintenant si tu ne veux que seulement la ligne soit relative alors
:="=DROITE($N3;10)<>DROITE($A3;10)"
la condition s'adaptera pour les lignes
en :
="=DROITE($N4;10)<>DROITE($A4;10)"
="=DROITE($N5;10)<>DROITE($A5;10)"
etc...

pour les colonnes en relatives
:="=DROITE(N$3;10)<>DROITE(A$3;10)"
la condition s'adaptera pour les colonnes
en :
="=DROITE(P$3;10)<>DROITE(C$3;10)"
="=DROITE(Q$3;10)<>DROITE(D$3;10)"
etc ...




Avatar
Modeste
Bonsour® LANIMAL avec ferveur ;o))) vous nous disiez :

Bonjour,
J'ai établi le code ci-dessous à partir d'un enregistrement de macro
en coordonnées RELATIVES, sur la cellule N3 (1ère ligne de formules).
-------------------------------------
Range("N" & PremLigne).Select
Selection.Font.ColorIndex = 48
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=DROITE(N3;10)<>DROITE(A3;10)"
Selection.FormatConditions(1).Font.Bold = True
Selection.FormatConditions(1).Interior.ColorIndex = 3
-------------------------------------
Je ne suis pas arrivé à écrire la condition en coordonnées relatives.


ou bien encore...
mais ai-je mal interprété
Range("N" & premligne).Select
Selection.Font.ColorIndex = 48
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=DROITE(N" & premligne & ";10)<>DROITE(A" & premligne & ";10)"
Selection.FormatConditions(1).Font.Bold = True
Selection.FormatConditions(1).Interior.ColorIndex = 3

--
--
@+
;o)))

Avatar
LANIMAL
Re-bonsoir
Ben, bien sûr, tu as raison, pourquoi n'y ai-je pas pensé ? ! !
Par contre je n'aurais certainement pas placé les guillemets
correctement du premier coup, oubliant que la formule doit être écrite
en texte (excepté la variable, bien sûr).
Merci beaucoup, bonne soirée.
Michel LANIMAL


Bonsour® LANIMAL avec ferveur ;o))) vous nous disiez :

Bonjour,
J'ai établi le code ci-dessous à partir d'un enregistrement de macro
en coordonnées RELATIVES, sur la cellule N3 (1ère ligne de formules).
-------------------------------------
Range("N" & PremLigne).Select
Selection.Font.ColorIndex = 48
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=DROITE(N3;10)<>DROITE(A3;10)"
Selection.FormatConditions(1).Font.Bold = True
Selection.FormatConditions(1).Interior.ColorIndex = 3
-------------------------------------
Je ne suis pas arrivé à écrire la condition en coordonnées relatives.


ou bien encore...
mais ai-je mal interprété
Range("N" & premligne).Select
Selection.Font.ColorIndex = 48
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=DROITE(N" & premligne & ";10)<>DROITE(A" & premligne & ";10)"
Selection.FormatConditions(1).Font.Bold = True
Selection.FormatConditions(1).Interior.ColorIndex = 3