modifier le format d'une cellule a partir de la fonction qu'elle porte

mister red

XLDnaute Nouveau
Bonsoir aux forumers,

Je bute sur une fonction qui doit notamment modifier le format de la cellule d'où la fonction est appelée. J'utilise application .caller.Address pour récupérer l'adresse de la cellule et je fais un numberformat sur cette adresse de cellule. Mais le format n'est pas modifié.

Quelqu'un peutr me dire ce qui ne va pas ?

J'ai attaché un petit exemple pour que ce soit plus clair. Il s'agit d'afficher un chiffre et de le mettre au format nombre "0.0".

Merci pour tout coup de main.

Cdt. Mister red
 

Pièces jointes

  • Utiliser NumberFormat dans une fonction.xls
    20 KB · Affichages: 71

pacoako

XLDnaute Occasionnel
Re : modifier le format d'une cellule a partir de la fonction qu'elle porte

Salu!

En fait je crois simplement que tu dois inscrire xxx = 9.0 et vba te le transforme comme ceci...

Public Function xxx()
Application.Volatile
Range(Application.Caller.Address).NumberFormat = "0.0"
xxx = 9#
End Function
 

PMO2

XLDnaute Accro
Re : modifier le format d'une cellule a partir de la fonction qu'elle porte

Bonjour,

Malheureusement, Excel ne permet pas de modifier les propriétés d'une cellule par le biais d'une fonction.
On peut, en revanche, utiliser une astuce pour contourner le problème.

1) Copiez le code suivant dans un module standard (c'est votre fonction modifiée)
Code:
Public Function xxx() As Variant
Application.Volatile
xxx = 9
End Function

2) Copiez le code évènementiel dans la fenêtre de code de ThisWorkbook
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim C As Range
For Each C In Target
  If C.Formula = "=xxx()" Then
    Application.EnableEvents = False
    With C
      .NumberFormat = "0.0"
      '--- et aussi... ---
      .Interior.ColorIndex = 38
      .Font.Bold = True
    End With
    Application.EnableEvents = True
  End If
Next C
End Sub

Cordialement.

PMO
Patrick Morange
 

Discussions similaires

Réponses
7
Affichages
693
Compte Supprimé 979
C

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87