Erreur formatage valeur dans TextBox

  • Initiateur de la discussion Initiateur de la discussion Compress
  • 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 !

Compress

XLDnaute Occasionnel
Bonjour le forum,

petite question ce matin car je dois vraiment être bête mais je ne vois pas où est mon erreur :

j'ai une textbox nommé tb_base1 dans laquelle j'envoie une valeur que je dois afficher en pourcentage selon la sélection d'un type de poste dans une combobox nommé cb_poste

J'arrive à envoyer les valeur dans la textbox par contre à l'affichage quand j'insère mes lignes sur le format ça bug :

j'ai essayé :

VB:
Private Sub CB_poste_change()
    Select Case CB_poste.ListIndex
            Case 1
                tb_base1.Value = 0.075
            Case 2
                tb_base1.Value = 0.1
            Case 3
                tb_base1.Value = 0.1
            Case 4
                tb_base1.Value = 0.1
            Case 5
                tb_base1.Value = 0.2
            Case 6
                tb_base1.Value = 0.2
            Case 7
                tb_base1.Value = 0.2
    End Select
End Sub

Private Sub tb_base1_change()
'forcer l'affichage en pourcentage
    tb_base1.Value = format(tb_base1.Value, "0.0%")
End Sub

J'ai une erreur sur Format : Nombre d'arguments incorrect ou affectation de propriété incorrecte....

Est-ce que quelqu'un a une piste ?

Merci par avance et bonne journée.
 
Re : Erreur formatage valeur dans TextBox

Bonjour Compress, bonjour le forum,

Il y a une boucle sur l'événement Change de tb_base1. La première fois quand tu sélectionnes dans la combobox CB_poste tu définis une valeur et cela lance tb_base1_change. Ensuite dans le propre code de ce Change tu redéfinis le format et ça relance la procédure. Cette boucle provoque le plantage. Je te propose l'emploi d'une varialbe booléenne test, pour éviter la boucle :
Code:
Private test As Boolean 'déclare la variable test
 
Private Sub CB_poste_change()
    Select Case CB_poste.ListIndex
            Case 1
                tb_base1.Value = 0.075
            Case 2
                tb_base1.Value = 0.1
            Case 3
                tb_base1.Value = 0.1
            Case 4
                tb_base1.Value = 0.1
            Case 5
                tb_base1.Value = 0.2
            Case 6
                tb_base1.Value = 0.2
            Case 7
                tb_base1.Value = 0.2
    End Select
End Sub
 
Private Sub tb_base1_change()
If test = True Then Exit Sub 'si test est vrai, sort de la procédure
test = True 'définit la variable test
tb_base1.Value = Format(Me.tb_base1.Value, "0.0%")
test = False 'redéfinit la variable test
End Sub
 
Re : Erreur formatage valeur dans TextBox

Bonjour Compress, Robert🙂

une autre approche serait peut être d'envoyer dans la textbox directement la chaîne de caractères attendue...
Code:
Case 2
    tb_base1.Value = "0.1%"

A voir suivant la suite de ton projet...

bonne journée
@+
 
Re : Erreur formatage valeur dans TextBox

Bonjour et merci,

Robert, je comprends mieux le problème par contre même avec ta solution j'ai toujours une erreur décelée sur Format.

Pierrot93 : en fait je voulais un formatage car il est possible pour l'utilisateur d'écraser cette préselection et je ne voulais pas qu'il ait à saisir % mais seulement le montant.

De même j'ai des calculs utilisant cette base et je me suis dit que ça serait mieux d'avoir les nombres seuls sans les % plutôt que du texte.

Peut être un soucis autre, je m'explique, j'ai une listview également dans mon formulaire et je voulais forcer également le formatage (cf. tuto de sylkyroad sur un autre site) :

mais là aussi même erreur sur cette ligne :

VB:
.ListItems(.ListItems.Count).ListSubItems.Add , "Temp!C" & i, Format(Sheets("Temp").Cells(i, 3).Value, "#,##0")

Merci par avance
 
Re : Erreur formatage valeur dans TextBox

Bonjour Compress, Pierrot, bonjour le forum,

C'est étange, pour ne pas dire bizarre, car avant de te faire ma proposition j'ai testé en créant une userform avec une combobox et une textbox que j'ai renommées comme dans ton exemple (en me disant "mais p... de b... de m... ! Pouvait pas envoyer une pièce jointe ce Compress... Ça m'aurait éviter tout ce boulot !").
Et avec la booléenne test ça marchait impeccable... Bien sûr je n'ai pas eu l'intelligence de sauver l'exemple (oui ça se saurait si j'en avais, ne serait-ce qu'un tout petit peu...).
Alors voilà je refais encore une fois et je te montre que dans ce contexte là, ça marche. Juste pour te prouver une seule chose : Avec une pièce jointe c'est beaucoup plus facile !
Alors fais un effort....
 

Pièces jointes

Re : Erreur formatage valeur dans TextBox

Ok il doit y avoir un soucis ailleurs alors car je ne comprends toujours pas de même j'ai supprimé dans le code la ligne suivante mais elle ne fonctionne pas non plus :

VB:
.ListItems(.ListItems.Count).ListSubItems.Add , "Temp!C" & i, Format(Sheets("Temp").Cells(i, 3).Value, "#,##0")

Voici également le fichier, désolé Robert, je ne pouvais pas l'envoyer avec toutes les données, j'ai du faire un peu le ménage sans toucher au fonctionnement de l'usf.

Cijoint.fr - Service gratuit de dépôt de fichiers

D'autre part, le code n'est pas ordonné parfaitement mais vous devriez vous y retrouver.

Cordialement.
 
Re : Erreur formatage valeur dans TextBox

Oops j'ai envoyé la version sans ton code rajouté mais ça ne change rien, tu pourras rajouter tes lignes et tu auras la même erreur que j'ai stipulé dans mon premier message.

Je continue de chercher mais je ne comprends pas, de même pour ma listview partout sur tous les sujets que je trouve cela fonctionne de cette manière sauf ici...
 
Re : Erreur formatage valeur dans TextBox

bonjour et désolé d'up mon sujet mais c'est important et je n'ai toujours pas trouvé de solutions.

Quelqu'un peut-il m'aider ? Robert ?

merci par avance.

PS : toutes mes tentatives se résument à une erreur de compilation "Nombre d'arguments incorrect ou affectation de propriété incorrecte" toujours sur ma fonction format où que je puisse la placer.
 
Dernière édition:
Re : Erreur formatage valeur dans TextBox

Robert, en continuant de me renseigner, est-ce possible qu'une référence activée viennent en conflit avec l'utilisation de la fonction format ce qui expliquerait pourquoi ton bout de code fonctionne chez toi et pas chez moi ou est-ce autre chose ?

Merci par avance ?
 
- 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
2
Affichages
171
Réponses
18
Affichages
327
Réponses
2
Affichages
532
Réponses
3
Affichages
513
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
864
Réponses
7
Affichages
460
Retour