|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Nouveau membre du Club
![]() Date d'inscription: novembre 2008
Messages: 77
|
Bonjour,
voilà, j'ai un outil de saisie grâce auquel on fait entrer des montants dans une feuille excel. Le problème est que dès que l'on met des montant de plusieurs chiffres ça devient illisible. Je veux alors mettre un format du texte dans la textbox pour qu'elle affiche 1 000 000 000 au lieu de 1000000000 par exemple. Peut quelqu'un m'indiquer comment faire ceci car je ne suis pas très familiarisé avec les GUI en VBA. Merci d'avance et bonne journée Dernière modification par ghosty04 ; 29/06/2009 à 16h28. |
|
|
|
|
|
#2 |
|
Expert Confirmé
![]() Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
|
Clique droit sur ta cellule (ou sur la colonne que tu as selectionné) format de cellule, choisi nombre et coche le séparateur des milliers. Pas besoin de VBA. Si tu veux connaitre le code qui le fait lance l'enregistreur
|
|
|
|
|
|
#3 |
|
Nouveau membre du Club
![]() Date d'inscription: novembre 2008
Messages: 77
|
c'est gentil de ta part. En fait je parle de la même chose, mais affectée à une TextBox (dans une userform) et non pas à une cellule (dans une feuille de travail)
|
|
|
|
|
|
#4 |
|
Expert Confirmé
![]() Date d'inscription: juillet 2008
Localisation: Elsass
Âge: 24
Messages: 1 887
|
Désolé je suis allé un peu vite
J'ai fait ca Code :
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) Dim reste As Byte, l As Integer, c As String If Len(TextBox1) > 3 Then c = TextBox1 'InStr(TextBox1, " ", "") TextBox1 = "" l = Len(c) reste = l - (l \ 3) * 3 If reste <> 0 Then TextBox1 = Left(c, reste) For i = reste To l Step 3 TextBox1 = TextBox1 & " " & Mid(c, i + 1, 3) Next i Else For i = 1 To l Step 3 TextBox1 = TextBox1 & " " & Mid(c, i, 3) Next i End If End If End Sub Code :
valeur = CLng(Replace(textbox1, " ", "")) |
|
|
|
|
|
#5 |
|
Membre régulier
![]() |
Il suffit d'utliser la fonction Format tres puissant !
Code :
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If IsNumeric(TextBox1) Then TextBox1.Text=Format(TextBox1.Text, "##,##0.00") End Sub
|
|
|
|
|
|
#6 |
|
Membre actif
![]() Date d'inscription: octobre 2007
Localisation: 29
Messages: 176
|
Bonjour,
Affiche en temps réel avec le séparateur système de milliers Code :
Private Sub TextBox1_Change() Dim X As String If Len(Me.TextBox1) < 4 Then Exit Sub X = Application.Rept("### ", Application.RoundUp(Len(Me.TextBox1) / 3, 0)) X = Left(X, Len(X) - 1) Me.TextBox1 = Format(Me.TextBox1, X) End Sub |
|
|
|
|
|
#7 |
![]() Date d'inscription: octobre 2004
Localisation: Villemurlin près de Sully sur Loire
Âge: 60
Messages: 2 378
|
![]() Pour compléter la maitrise des formats voici un petit tuto convernant ce sujet : Formats personnalisés sous Excel Bonne continuation
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
|
|
![]() |
||
Format du texte dans une TextBox
|
||
| Outils de la discussion | |
|
|