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
Partager