TextBox dans un Userform affiche et enregistre %

bloomby

XLDnaute Occasionnel
Bonjour à tous,

J'ai un userform qui contient plusieurs Textbox.
Dans un premier temps, j'aimerais que les texbox affichent des valeurs en %

Par la suite, lorsque j'inscris une valeur dans la textbox
cette dernière est enregistrée sur la feuille du classeur, mais sous aucune forme

Même si FormatNumber est en chiffre ou % cela change rien
je dois cliquer à l'intérieur de la cellule et faire enter pour que la cellule
prenne cette forme

Pour afficher en % j'ai essayer le code suivant

Sub Show_TextBox()
Dim n As Variant
For n = 30 To 68
UserForm1.Controls("TextBox" & 1000 + n) = Sheets("Sheet1").Cells(3, n - 28).Value
UserForm1.Controls("TextBox" & 1000 + n) = Format("0.00")
Next n
End Sub

cela ne fonctionne pas, tout les texbox affiche "0"
et pour enregistrer en % j'ai aucune idée

quelqu'un aurait une idée pour résoudre ce problème

merci
 
Dernière édition:

bloomby

XLDnaute Occasionnel
Re : TextBox dans un Userform affiche et enregistre %

Bonjour à tous,

L'affichage est résolue

UserForm1.Controls("TextBox" & 1000 + n) = Format(Cells(3, n - 28).Value, "0.00%")

Mais l'enregistrement, n'est pas en format %
les chiffres sont allignés à la gauche dans la cellule, je dois donc encore cliquer à l'intérieur de la cellule et faire "enter" "Entrée"

merci
 
Dernière édition:

alex67800

XLDnaute Impliqué
Re : TextBox dans un Userform affiche et enregistre %

Bonjour Bloomby, le forum,

Je vais peut-être dire une annerie mais ej me lance quans même lol.

Pour qu'un textbox renvoi une valeur numérique, il faut coder comme ceci:
Range("A1")= TextBox1.Value * 1

Peut-être que cela pourrais résoudre ton problème!?! Avec une incertitude (car j'ai pas testé) ton format nombre de ta taxtbox.

Bonne journée!
 

alex67800

XLDnaute Impliqué
Re : TextBox dans un Userform affiche et enregistre %

Bonsoir bloomby, le forum,

ci-joint un exemple d'utilisation:
.Range("G" & derlign).Value = TextBox4.Value * 1 'Heures

En effet je met .value avant le *1.

Pour ton contrôle userform1.controls.
Habituellement je l'écris Me.controls comme ceci:
Code:
Private Sub CommandButton5_Click()
    For i = 2 To 8
    Me.Controls("Combobox" & i).Value = ""
    Next i
    For j = 1 To 9
    Me.Controls("CheckBox" & j).Value = False
    Me.Controls("Label" & j).BackColor = &HFFC0C0
    Next j
    TextBox1.Value = ""

Pour ton message d'erreur regarde ici:
"Run-time error:'13' Type Mismatch" error message when you click a macro or a function on a menu in Excel 2002

A te lire!

Edit: et ici: http://support.microsoft.com/kb/821292
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : TextBox dans un Userform affiche et enregistre %

Bonsoir bloomby, alex67800

Bonjour alex, le forum,

J'ai essayé de rajouter *1
et j'ai un message d'erreur



run error 13 type miss-match

Bloomby

On obtient cette erreur si le textbox ne contient pas une valeur numérique comme par exemple 10.2
On remplace le point par une virgule
TextBox1.Value = Replace(TextBox1.Value, ".", ",")
Et on teste la valeur
If isnumeric(Textbox1.value) then


JP
 

bloomby

XLDnaute Occasionnel
Re : TextBox dans un Userform affiche et enregistre %

Bonjour à tous, le forum, alex, Jp14,

Pour l'instant je suis incapble.
Cela dit, j'ai une version anglaise, je n'est donc pas besoin de convertir le "." en ","
Mais le *1 me signal un msg d'erreur.

Bloomby
 

Discussions similaires

Statistiques des forums

Discussions
312 775
Messages
2 092 023
Membres
105 152
dernier inscrit
pago