Autres Comment avoir 0,00 à l'ouverture d'un userform

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 !

bonsoir
Mettre la propriété value des text box à 0,00

plutôt que mettre à 0 (qui ne sera pas la solution tip top)

a l'appui bouton il faut contrôler auparavant si tes textbox sont documentées , et ensuite contrôler si ces des valeurs numériques

VB:
 If TextBox1 = "" Then
        MsgBox " première text box non documentée"
        Exit Sub
    End If

    If IsNumeric(TextBox1) = False Then
        MsgBox " première text box non numérique"
        Exit Sub
    End If

    ' idem pour la deuxième
 
Dernière édition:
Bonsoir
oui on peut jouer avec les events pour obtenir ce genre d'ergonomie
VB:
Option Explicit


Private Sub UserForm_Activate()
    TextBox1.Value = 0: formate TextBox1
    TextBox2.Value = 0: formate TextBox2
End Sub

'dans l'event update on appelle la sub formate
Private Sub TextBox1_AfterUpdate(): formate TextBox1: End Sub
Private Sub TextBox2_AfterUpdate(): formate TextBox2: End Sub

'dans l' event up on selectionne tout le contenu du textbox par la sub generiqus "completDelect"
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    completSelecT TextBox1
End Sub
Private Sub TextBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    completSelecT TextBox2
End Sub

'-------------------------------------------------------------------------------------------------------
'les subs generiques
Sub completSelecT(TXTB)
    With TXTB: .SelStart = 0: .SelLength = 100: End With
End Sub
Sub formate(TXTB)
    TXTB.Value = Format(Replace(TXTB.Value, ".", ","), "# ##0.00 €")
End Sub

'-------------------------------------------------------------------------------------------------------
'validation
Private Sub CommandButton1_Click()
    With ActiveSheet
        .[B5] = CDbl(TextBox1.Value)
        .[E5] = CDbl(TextBox2.Value)
        .[H5] = CDbl(TextBox1.Value) + CDbl(TextBox2.Value)
    End With
    Unload Me
End Sub
 
bonsoir
Mettre la propriété value des text box à 0,00

plutôt que mettre à 0 (qui ne sera pas la solution tip top)

a l'appui bouton il faut contrôler auparavant si tes textbox sont documentées , et ensuite contrôler si ces des valeurs numériques

VB:
 If TextBox1 = "" Then
        MsgBox " première text box non documentée"
        Exit Sub
    End If

    If IsNumeric(TextBox1) = False Then
        MsgBox " première text box non numérique"
        Exit Sub
    End If

    ' idem pour la deuxième
Merci à toi j'essaie ça demain et reviens vers toi. Bonne nuit, j'y vais aussi
 
Bonsoir
oui on peut jouer avec les events pour obtenir ce genre d'ergonomie
VB:
Option Explicit


Private Sub UserForm_Activate()
    TextBox1.Value = 0: formate TextBox1
    TextBox2.Value = 0: formate TextBox2
End Sub

'dans l'event update on appelle la sub formate
Private Sub TextBox1_AfterUpdate(): formate TextBox1: End Sub
Private Sub TextBox2_AfterUpdate(): formate TextBox2: End Sub

'dans l' event up on selectionne tout le contenu du textbox par la sub generiqus "completDelect"
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    completSelecT TextBox1
End Sub
Private Sub TextBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    completSelecT TextBox2
End Sub

'-------------------------------------------------------------------------------------------------------
'les subs generiques
Sub completSelecT(TXTB)
    With TXTB: .SelStart = 0: .SelLength = 100: End With
End Sub
Sub formate(TXTB)
    TXTB.Value = Format(Replace(TXTB.Value, ".", ","), "# ##0.00 €")
End Sub

'-------------------------------------------------------------------------------------------------------
'validation
Private Sub CommandButton1_Click()
    With ActiveSheet
        .[B5] = CDbl(TextBox1.Value)
        .[E5] = CDbl(TextBox2.Value)
        .[H5] = CDbl(TextBox1.Value) + CDbl(TextBox2.Value)
    End With
    Unload Me
End Sub
Merci à toi j'essaie ça demain et reviens vers toi. Bonne nuit, j'y vais aussi
 
Re le forum
Re alain,pierrephie, bonsoir JM27

Entièrement d'accord avec Jean-Marcel qui te dit de contrôler la valeur numérique des TextBoxs. Je te mets néanmoins un fichier à compléter pour tes essais.

Bonne soirée à toutes & à tous
Bonjour Eric j'espère que tout va bien. J'ai donc essayé ton truc mais ça ne marche pas
Voici mon code quand je clic sur "SAUVEGARDER" ton équivalent "OK"
Ne sont concernés que les numligne "25/26/27"
Que dois je mettre et ou dois je mettre quelque chose ? Tu remarque que j'avais déjà mon "CDbl" mais qui marche pas.
Petit rappel: dans cette configuration j'ai pas mes zéro et lorsque je tape qu'un seul versement j'ai un "Débogage"
1632128103382.png



Private Sub CommandButton3_Click()
'ActiveSheet.Unprotect ("5158")
Dim numligne As Long
numligne = Range("numeroligne")
Cells(numligne, 1) = Me.nomnaissance
Cells(numligne, 25) = CDbl(Me.versement1)
Cells(numligne, 26) = CDbl(Me.versement2)
Cells(numligne, 27) = CDbl(Me.versement3)

Unload Me
'ActiveSheet.Protect Password:="5158"

End Sub
 
Bonjour Alain pierre
Mais ça fonctionne quand y 'a des données dans les textBox ! La y'a rien !
Ou alors tu utilise la méthode de PatrickToulon qui a l'ouverture met un zéro (0,00) dans les textBox.
Évite le problème de convertir un textBox vide
Bonne journée
Jean marie
 
- 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
1
Affichages
220
Réponses
13
Affichages
384
Retour