Erreur formatage valeur dans TextBox

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.
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Pierrot93

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

Compress

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

Robert

XLDnaute Barbatruc
Repose en paix
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

  • Compress_v01.xls
    25 KB · Affichages: 67

Compress

XLDnaute Occasionnel
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.
 

Compress

XLDnaute Occasionnel
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...
 

Compress

XLDnaute Occasionnel
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:

Compress

XLDnaute Occasionnel
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 ?
 

Compress

XLDnaute Occasionnel
Re : Erreur formatage valeur dans TextBox

Pour Robert et les autres qui voudront bien m'aider à ce problème de format et relatif à ce sujet, voici le fichier :

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

Merci par avance.
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16