Autres Format euro, dans Textbox, mal renvoyé...

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais votre aide pour mon problème de format euro dans une TextBox. La valeur renvoyée dans la cellule ne prend pas en compte les décimales. Le prix incrémentée automatiquement dans la Textbox est de 4,30, mais le prix envoyée dans la cellule est 4,00 (les cellules sont bien au format monétaire avec deux chiffres après la virgule).

voir fichier

Merci pour votre aide.
Bien amicalement,
Christian
 

Pièces jointes

  • Textbox format euro.xlsm
    116.6 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
re
bonjour
tu avais simplement inversé B ET C et pas converti la virgule
VB:
f2.Cells(lig, 3) = Val(Replace(Me.TextBox2, ",", "."))
  f2.Cells(lig, 2) = Val(Replace(Me.TextBox3, ",", "."))

il faudra nous expliquer pourquoi répéter deux fois l'incrémentation pour F dans archive
VB:
temp = f3.[F65000].End(xlUp)
  If IsNumeric(temp) Then [C1] = temp + 1 Else [C1] = 1
  temp = f3.[F65000].End(xlUp)
  If IsNumeric(temp) Then [C1] = temp + 1 Else [C1] = 1
??????????????
 

patricktoulon

XLDnaute Barbatruc
pour le fun je tout réécris le code de l'userform
VB:
Option Explicit
Private Sub LabelDate_Click()
    fmSTD_Calendrier.SelectDateCTRL1 Me, LabelDate    'appel calendrier
    If LabelDate <> "" Then
        B_ok.Enabled = True
    Else
        B_ok.Enabled = False
    End If
End Sub
Private Sub ComboBox1_Change()
    With ComboBox1
        If .ListIndex > -1 Then
            TextBox1 = .List(.ListIndex, 1)
            TextBox2 = Replace(.List(.ListIndex, 2), ",", ".") & " €"
        End If
    End With
End Sub



Private Sub UserForm_Initialize()
    liste
End Sub
Sub liste()
    With ComboBox1
        .ColumnCount = 4
        .List = Feuil1.Range("Tableau1").Value
        .ColumnWidths = .Width & ";0;0;0"
    End With
End Sub


Private Sub B_ok_Click()
Dim L As Long

    With Sheets("Saisie").Range("A65000").End(xlUp).Offset(1)
        .Value = Me.ComboBox1.Value
        .Offset(, 1).Value = Val(Replace(Me.TextBox3, ",", "."))   'ici la valeur envoyée n'est pas correctement affichée
        .Offset(, 2).Value = Val(Replace(Me.TextBox2, ",", "."))
    End With

    '**********************************
    'a quoi ca sert ceci ci dessous????????
    'Me.ComboBox1.SetFocus'???????????
    '[D1] = Now
    'temp = f3.[F65000].End(xlUp)
    'If IsNumeric(temp) Then [C1] = temp + 1 Else [C1] = 1
    '************************************
    With Sheets("Archives")
        L = .Range("G" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & L).Value = CDate(LabelDate)
        .Range("B" & L).Value = Month(CDate(LabelDate))
        .Range("C" & L).Value = Year(CDate(LabelDate))
        .Range("D" & L).Value = ComboClients
        .Range("E" & L).Value = ComboRèglement
        .Range("G" & L).Value = ComboBox1
        .Range("H" & L).Value = Val(Replace(Me.TextBox3, ",", "."))
        .Range("I" & L).Value = Val(Replace(Me.TextBox2, ",", "."))
    End With
    With Me
        .ComboBox1 = "": .TextBox1 = "": .TextBox2 = "": Me.TextBox3 = ""
    End With


End Sub

Private Sub B_fin_Click()
    Unload Me
End Sub
 

Christian0258

XLDnaute Accro
Re, le forum, pierrejean, patricktoulon,

Merci infiniment, patrick, pour tout le code.

J'ai une autre petite demande dans le fichier joint, je souhaiterais avoir devant chaque article, son montant ; soit TextBoxP.U x TextBoxQté, lors des saisies dans USF.

Merci pour votre aide.
Bien à vous,
Christian
 

Pièces jointes

  • Textbox montant.xlsm
    114.5 KB · Affichages: 7

patricktoulon

XLDnaute Barbatruc
re
VB:
Option Explicit
Private Sub LabelDate_Click()
    fmSTD_Calendrier.SelectDateCTRL1 Me, LabelDate    'appel calendrier
    If LabelDate <> "" Then
        B_ok.Enabled = True
    Else
        B_ok.Enabled = False
    End If
End Sub
Private Sub ComboBox1_Change()
    With ComboBox1
        If .ListIndex > -1 Then
            TextBox1 = .List(.ListIndex, 1)
            TextBox2 = Replace(.List(.ListIndex, 2), ",", ".") & " €"
        End If
    End With
End Sub



Private Sub UserForm_Initialize()
    liste
End Sub
Sub liste()
    With ComboBox1
        .ColumnCount = 4
        .List = Feuil1.Range("Tableau1").Value
        .ColumnWidths = .Width & ";0;0;0"
    End With
End Sub


Private Sub B_ok_Click()
    Dim L As Long

    With Sheets("Saisie").Range("A65000").End(xlUp).Offset(1)
        .Value = Me.ComboBox1.Value
        .Offset(, 1).Value = Val(Replace(Me.TextBox3, ",", "."))   'ici la valeur envoyée n'est pas correctement affichée
        .Offset(, 2).Value = Val(Replace(Me.TextBox2, ",", "."))
        .Offset(, 3).Value = Val(Replace(Me.TextBox2, ",", ".")) * Val(Replace(Me.TextBox3, ",", ".")) 'montant saisie

    End With

    '**********************************
    'a quoi ca sert ceci ci dessous????????
    'Me.ComboBox1.SetFocus'???????????
    '[D1] = Now
    'temp = f3.[F65000].End(xlUp)
    'If IsNumeric(temp) Then [C1] = temp + 1 Else [C1] = 1
    '************************************
    With Sheets("Archives")
        L = .Range("G" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & L).Value = CDate(LabelDate)
        .Range("B" & L).Value = Month(CDate(LabelDate))
        .Range("C" & L).Value = Year(CDate(LabelDate))
        .Range("D" & L).Value = ComboClients
        .Range("E" & L).Value = ComboRèglement
        .Range("G" & L).Value = ComboBox1
        .Range("H" & L).Value = Val(Replace(Me.TextBox3, ",", "."))
        .Range("I" & L).Value = Val(Replace(Me.TextBox2, ",", "."))
        .Range("J" & L).Value = Val(Replace(Me.TextBox2, ",", ".")) * Val(Replace(Me.TextBox3, ",", ".")) 'montant archive
    End With
    With Me
        .ComboBox1 = "": .TextBox1 = "": .TextBox2 = "": Me.TextBox3 = ""
    End With


End Sub

Private Sub B_fin_Click()
    Unload Me
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
heu jusqu’à présent je ne t'ai pas aidé j'ai tout réécris a ta place
tu pourrais faire des efforts et essayer de débrouiller tout seul maintenant
inscrit en 2006 tu n'est pas un novice :rolleyes:
dans tes demandes tu pourrais au moins détailler ton soucis plutôt que de donner un fichier pour que je regarde
aider n'est pas faire le job a la place de l'autre
tu a une base travaille dessus ;)