Utilisation mise en forme conditionnelle et macro

sebm1976

XLDnaute Nouveau
Bonjour à toutes et tous,

Ma question concerne la gestion des mises en forme conditionnelle.

En effet, je voulais savoir si il est possible via une macro d'avoir plus d'option de mise en forme que celles proposées par le menu Excel.

Le morceau de code suivant fait une partie de ce que je veux c'est à dire mettre en gras et en italique la valeur max d'une colonne, mais je voudrais de plus qu'elle soit aligner à droite, chose que l'on ne peut gérer dans le menu de la mise en forme conditionnelle.

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=B$9"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = True
.Color = xlAutomatic
.TintAndShade = 0
End With

Autre précision, j'ai fait le choix de la mise en forme conditionnelle car la macro que je développe en remplacement d'une précédente récupère les valeurs dans un fichier ou il peut y avoir des erreurs de saisies. Aussi c'est pour éviter de régénérer à nouveau le rapport comme c'est le cas aujourd'hui (mise en forme faite lors du traitement et du coup format des cellules figées) que je souhaite appliquer une mise en forme conditionnelle (on pourrait modifier la valeur directement dans le fichier final et la mise à jour se ferait automatiquement).

Je me pose la question de savoir si on peut gérer d'autres paramètres de la mise en forme conditionnelle via VB car lors d'une formation en VB Excel j'ai cru comprendre que l'on avait accès parfois à plus d'options.

Si ce n'est pas possible, je suis bon pour implanter une macro dans le rapport final qui fait les modifs si changement d'une valeur.

Merci d'avance de vos réponses.

PS : désolé, mais je n'ai pas à disposition un exemple du résultat final souhaité à joindre.
 

Papou-net

XLDnaute Barbatruc
Re : Utilisation mise en forme conditionnelle et macro

Bonjour sebm1976, et bienvenue sur XLD,

A moins qu'un élément ne m'échappe, si tu utilises une macro tu peux formater directement ta sélection sans passer par le format conditionnel.

Par exemple :

Code:
Sub macroFormat()
With Selection
  .Font.Bold = True
  .Font.Italic = True
  .Font.Color = xlAutomatic
  .Font.TintAndShade = 0
  .HorizontalAlignment = xlRight
End With
End Sub
A +

Cordialement.
 

sebm1976

XLDnaute Nouveau
Re : Utilisation mise en forme conditionnelle et macro

Merci Papou-net pour ta réponse,

Mais hélas elle ne réponds pas à mon besoin.

Pour mettre en forme une cellule lors du traitement par la macro il n'y a aucun problème. Le soucis est qu'il faudrait que le fichier se mette en forme automatiquement si on apporte une modification après le traitement par la macro.

Je joindrai un fichier lundi sur ce fil en espérant que je serai du coup plus explicite.
 

chris

XLDnaute Barbatruc
Re : Utilisation mise en forme conditionnelle et macro

Bonjour
...
En effet, je voulais savoir si il est possible via une macro d'avoir plus d'option de mise en forme que celles proposées par le menu Excel...
Le VBA automatise sur la base des fonctionnalités existantes : si la MFC ne prévoit pas d'alignement, tu peux aligner par VBA mais pas changer la façon dont la MFC fonctionne.

Avec une procédure évènementielle tu peux déclencher la macro de mise en forme en cas de changement de valeur de la cellule.

Cependant dans ton cas la MFC peut marcher : si ta MFC vérifie que ta cellule est supérieure à B9 c'est que son contenu est numérique mais que tu ne respectes pas la norme qui est d'aligner les nombres à droite, ce qu'ils font naturellement dans Excel, et que as appliqué un autre alignement.

Tu peux réaligner à droite par un format de nombre personnalisé puisque sous 2007 le format de nombre est gérable en MFC.

Il faut utiliser le format de nombre voulu précédé d'un * et d'un espace : exemple * # ##0
 
Dernière édition:

sebm1976

XLDnaute Nouveau
Re : Utilisation mise en forme conditionnelle et macro

Merci pour le lien Jean62.

Je vais voir si je peux trouver mon bonheur.

Chris, merci pour le format de nombre personnalisé. Je n'y avais pas songé.

Je vous tiens au courant en espérant pouvoir clôturer le fil.
 

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg