OVH Cloud OVH Cloud

vba

1 réponse
Avatar
Françoise
Bonjour, je voudrais faire avec VBA un genre de mise en forme
conditionnelle. La mise en forme conditionnelle ne me convient pas car je ne
peux changer la police de caractère et en plus on a droit qu'à 3 mise en
formes. VBA pourrait répondre à mes désirs mais j'ai un problème de syntaxe.
Je bloque. Voici mon problème, je saisi dans des cellules des chiffres et je
souhaiterais que le contenu de ces cellules ayant des chiffres soit
remplacer par du texte : windgings qui représentent des smileys, soit 2 soit
3 soit d'une forme soit d'une autre et avec un fond de couleur. Si quelqu'un
pouvait m'aider ce serait sympathique car je n'arrive pas à grand chose
toute seule. Merci beaucoup.

1 réponse

Avatar
Benoît Marchand
Salut Françoise,

Tu peux prendre exemple sur ce code qui se place dans le module de classe de la feuille :


' ***************** Début de macro

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count = 1 Then
If Not Intersect(Target, Range("C1:C100")) Is Nothing Then
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Select Case Target.Value
Case "J", "K", "L"
Target.Font.Name = "Wingdings"
Target.Font.Size = 16
Target.HorizontalAlignment = xlHAlignCenter
Target.Font.Bold = True
Select Case Target.Value
Case "J"
Target.Interior.ColorIndex = 1
Target.Font.ColorIndex = 2
Case "K"
Target.Interior.ColorIndex = 3
Target.Font.ColorIndex = 28
Case "L"
Target.Interior.ColorIndex = 4
Target.Font.ColorIndex = 14
End Select
Case Else
Target.Font.Bold = True
Target.Font.Name = "Wingdings"
Target.Interior.ColorIndex = 0
Target.Font.ColorIndex = 0
Target.Font.Size = 10
Target.HorizontalAlignment = xlHAlignGeneral
End Select
Application.EnableEvents = True
End If
End If
End Sub

Sub ActivationEvents()
Application.EnableEvents = True
End Sub

Ce sont les "Case" qui conditionnent le format de la cellule.
Sur mon ordinateur, c'est J, K et L qui affichent des smileys quand la po lice Wingdings est sélectionnée.

Adapte en fonction de tes besoins et si tu as une question, reviens...

A+
Benead


La proc ActivationEvents ne doit servir que pour tes tests.


' ***************** Fin de macro

Françoise a écrit:
Bonjour, je voudrais faire avec VBA un genre de mise en forme
conditionnelle. La mise en forme conditionnelle ne me convient pas car je ne
peux changer la police de caractère et en plus on a droit qu'à 3 mi se en
formes. VBA pourrait répondre à mes désirs mais j'ai un problèm e de syntaxe.
Je bloque. Voici mon problème, je saisi dans des cellules des chiffre s et je
souhaiterais que le contenu de ces cellules ayant des chiffres soit
remplacer par du texte : windgings qui représentent des smileys, soit 2 soit
3 soit d'une forme soit d'une autre et avec un fond de couleur. Si quel qu'un
pouvait m'aider ce serait sympathique car je n'arrive pas à grand cho se
toute seule. Merci beaucoup.