VBA : Problème fonction gérant les formats

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Matt_vd

XLDnaute Nouveau
Bonjour à tous,

Voila j'ai créé la fonction que voici :

Code:
Function force_texte(mot)

If mot.NumberFormat = "0" Then
force_texte = Format(mot, "0")
ElseIf mot.NumberFormat = "0.0" Then
force_texte = Format(mot, "0.0")
ElseIf mot.NumberFormat = "0.00" Then
force_texte = Format(mot, "0.00")
ElseIf mot.NumberFormat = "0.000" Then
force_texte = Format(mot, "0.000")
ElseIf mot.NumberFormat = "0.0000" Then
force_texte = Format(mot, "0.0000")
End If

End Function

Elle me permet de garder le nombre de zéro après la virgule quand je concatène la valeur de la cellule avec du texte.
Hors, je m'aperçois que lorsque je change le format numérique (nombre de zéro après la virgule) de la cellule source, le changement ne s'effectue pas dans ma cellule concaténer. Il n'y a que si je change le nombre de ma cellule source que le changement s'effectue. Est- il possible d'y remédier ?

je vous joins un fichier test. En C5 et C6, les cellules sources et en G5 la formule de concaténation.

Merci d'avance.

A+, Matt
 

Pièces jointes

Re : VBA : Problème fonction gérant les formats

Bonjour Matt_vd.


Je ne vois pas de solution complète à votre problème car le changement de format d'affichage ne déclenche aucun évènement de feuille, pas même Worksheet_Change.

Un remède partiel consiste à ajouter la ligne
Code:
Application.Volatile
à votre fonction.
Ainsi, lorsque vous avez terminé vos modifications de format, il vous suffit de presser une fois la touche F9 pour provoquer la mise à jour des formules qui appellent force_texte.

Vous pouvez en profiter pour raccourcir votre code en​
Code:
Function force_texte(mot)
Application.Volatile
Dim x$
   x = mot.NumberFormat
   If x Like "0.*" Or x Like "0" Then force_texte = Format(mot, x) Else force_texte = mot
End Function


Bonne journée.


ℝOGER2327
#7765


Mardi 24 Gueules 142 (Conversion de Saint Matorel, bateleur - fête Suprême Quarte)
30 Pluviôse An CCXXIII, 6,1101h - traineau
2015-W08-3T14:39:51Z
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
1 K
Réponses
16
Affichages
5 K
Réponses
2
Affichages
1 K
Retour