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

alain.pierrephie

XLDnaute Occasionnel
Bonsoir au forum
Je pense que ça va être facile pour vous de me dire comment faire pour avoir "0,00 euros" à l'ouverture d'un userform afin d'éviter le fameux "débogage".
merci a tout le forum
 

Pièces jointes

  • userform pour essai downloads excel.xlsm
    17.3 KB · Affichages: 8

JM27

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

Eric C

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

Pièces jointes

  • userform pour essai downloads excel 2.xlsm
    19.1 KB · Affichages: 12

patricktoulon

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

alain.pierrephie

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

alain.pierrephie

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

alain.pierrephie

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

ChTi160

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

JM27

XLDnaute Barbatruc
Bonjour
Ah bon ;)
Voir le fichier ci joint

Edit : si tu rajout une E après saisie , c'est normal que cela ne fonctionne pas car on ne peut pas la transformer en CDBL
 

Pièces jointes

  • userform pour essai downloads excel (1).xlsm
    20.2 KB · Affichages: 9

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 933
Membres
103 678
dernier inscrit
bibitm