VBA : Problème fonction gérant les formats

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

  • test.xlsm
    15.1 KB · Affichages: 19
  • test.xlsm
    15.1 KB · Affichages: 20
  • test.xlsm
    15.1 KB · Affichages: 21

ROGER2327

XLDnaute Barbatruc
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
 

Discussions similaires

  • Résolu(e)
Microsoft 365 pb formule vba
Réponses
15
Affichages
766

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 151
dernier inscrit
nassim