Bonjour à tous,

Je suis en train d'écrire une macro qui, à partir d'une feuille excel crée un document word. Le but est de faire des bulletins, donc je dois mettre les valeurs de la feuille dans des tableaux.
Une fois les chiffres dans les tableaux je dois faire les choses suivantes:
  • ajouter "%" à la fin

  • mettre le chiffre (et pas le %) en rouge si le résultat est plus petit que %

  • souligner le chiffre en rouge si le résultat est entre 50 et 51


Afin d'avoir un code propre et pouvoir réutiliser cette partie (j'ai plusieurs tableaux) j'ai voulu créer une fonction qui se charge de tout cela. La fonction prend en argument la cellule du tableau sur laquelle je suis et le résultat venant de la feuille excel. Pour appliquer les mise en forme j'essaye de faire une selection sur la cellule et de lui retirer deux caractères (le % et l'espace).
J'ai une erreur de type à ce moment là. Je pense qu'il a un mélange entre le range et la selection ou bien que j'initialise mal l'object note mais je n'arrive pas à résoudre mon erreur.
Quelqu'un aurait une idée de ce que je fait mal ?

Merci d'avance pour votre aide


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Sub remplircellule(Cellule As Cell, resultat As Single)
 
    Dim arrondi As Single
    Dim note As Selection
    arrondi = Round(resultat, 1)
    Cellule.Range.Text = arrondi & " %"
 
    Select Case arrondi
        Case Is < 50
        Set note = Cellule.Range.MoveEnd(wdCharacter, -2)
        note.Font.Color = wdColorRed
        Case Is >= 51
 
 
        Case 50 To 50, 9
 
        note = Cellule.Range.MoveEnd(wdCharacter, -2)
        note.Font.Underline = wdUnderlineSingle
        note.Font.UnderlineColor = wdColorRed
 
 
    End Select
 
End Sub