Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : Problème fonction gérant les formats

  • Initiateur de la discussion Initiateur de la discussion Matt_vd
  • Date de début Date de début

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 !

M

Matt_vd

Guest
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
 
Re : VBA : Problème fonction gérant les formats

Bonjour Roger,

En effet, je ne vois pas non plus de solution (j'avais essayé Worksheet_change sans succés).
J'essaie votre solution demain.

Merci.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
1 K
K
Réponses
1
Affichages
881
Karakol
K
J
Réponses
13
Affichages
1 K
H
  • Question Question
Réponses
16
Affichages
5 K
harissa555
H
N
  • Question Question
Réponses
2
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…