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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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.
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.