Envoyer les chiffres au format nombre dans le TableauDevis

Bonsoir.

Comment faire pour que la quantité ( TextBoxQuantiteDevis ) et les prix ( TextBoxDPCTTC et TextBoxTTC€Adapable ) soient envoyés au format "nombre" dans le TableauDevis ?

C'est depuis le formulaire AjouterAuDevis.

Private Sub CB_Valider_Click()
     '*********************
     ' bouton Valider
     '*********************

     Dim Arr, C

     Arr = f_TextBoxDevisEnCours()
 '    If VarType(Arr(0)) = vbString Then MsgBox "erreur " & Arr(0): Exit Sub
        '// cas du devis "plein"  voir module2, ligne 38       papicx le 10/09/2025
     If VarType(Arr(0)) = vbString Then MsgBox "erreur " & Arr(0) & " Veuillez créer un autre devis pour faire la suite. Merci": Exit Sub
     If Val(Me.TextBoxQuantiteDevis.Text) = 0 Then MsgBox "Vous devez indiquer une quantité de pièce pour ce devis.", 64, "QUANTITÉ MANQUANTE": Exit Sub

     If OptionButtonHonda = False Then
          If OptionButtonAdaptable = True Then
          End If
          If OptionButtonAdaptable = False Then MsgBox "Vous devez choisir entre pièce Honda d'origine ou une pièce adaptable.", 64, "Pièce d’origine ou adaptable ?": Exit Sub
     End If

     Set C = Range("TableauDevis").Cells(Arr(0), Arr(1))     'cellule de la référence à ajouter
     C(1, 2).Value = Me.TextBoxDesignation      ' ajouté cette ligne pour fixer la désignation correspondante à la référence  papicx le 20/07/2026
     C(1, 3).Value = "+"
     C(1, 5).Value = Me.TextBoxQuantiteDevis

     If OptionButtonHonda = True Then
          C(1, 1).Value = Me.TextBoxNewRefHonda   ' Référence d'origine Honda
          C(1, 6).Value = Me.TextBoxDPCTTC        ' prix unitaire pièce Honda d'origine
     End If

     If OptionButtonAdaptable = True Then
          C(1, 1).Value = Me.TextBoxRefAdaptable  ' Référence de pièce adaptable
          C(1, 4).Value = "Adaptable"
          C(1, 6).Value = Me.TextBoxTTC€Adapable  ' prix unitaire pièce Honda d'origine
     End If

  '   c(1, 5).Value = Me.TextBoxTotal1Ref
     Unload Me                               'vider et désactiver l'userform
     Exit Sub
end sub

voici la fonction f_TextBoxDevisEncours() est dans le Module2

Function f_TextBoxDevisEnCours(Optional sRef As String)
     Dim s, s1, i, r1, r2, i1, i2, C
     s = Sheets("honda").TextBoxDevisEnCours.Text
     If Len(s) = 0 Then
          f_TextBoxDevisEnCours = Array("Vide", "", s)
     Else
          r1 = Application.IfError(Application.Match(s, Range("TableauDevis[NoDevis]"), 0), 0)
          If r1 = 0 Then
               f_TextBoxDevisEnCours = Array("Inconnu")
          Else
               With Range("TableauDevis").Rows(r1)     'la plage de ce devis dans le TS
                    s1 = .Parent.Name & "!" & .Address(0, 0)
                    If sRef = "" Then
                         r2 = Evaluate(Replace("max(if(len(@1)>0,column(@1),0))", "@1", s1))     'formule pour trouver la dernière cellule non-vide dans cette plage
                         If r2 = 0 Then
                              f_TextBoxDevisEnCours = Array("Impossible")
                         Else
                              i1 = 7: i2 = 6     'la colonne "Reference01" est la 7ème colonne du TS et on a 6 colonnes par référence
                              r2 = (((r2 - (.Column - 1) - 7) \ 6) + 1) * i2 + i1     'formule pour calculer la colonne du suivant "Reference"-vide

                              If r2 >= .Columns.Count Then
                                   f_TextBoxDevisEnCours = Array("Plein")   '// cas du devis plein      papicx le 10/09/2025
                              Else
                                   f_TextBoxDevisEnCours = Array(r1, r2)
                              End If
                         End If
                    Else
                         r2 = Application.IfError(Application.Match(sRef, .Offset(0), 0), 0)
                         If r2 = 0 Then
                              f_TextBoxDevisEnCours = Array("Référence du devis inconnue")
                         Else
                              f_TextBoxDevisEnCours = Array(r1, r2)
                         End If
                    End If
               End With
          End If
     End If
End Function

D'ailleurs, j'ai remarqué que lorsqu'on ajoute le premier article dans un devis, celui-ci se met dans la deuxième série de champs. À partir de Reference02 pour être clair
Les suivants se mettent bien dans les colonnes suivantes correctement.

J'ai bien essayé de bricoler ce code, mais je n'y arrive pas.
NB : vu mes connaissance en VBA, "bricoler" est bien le verbe juste me concernant.
Merci d'avance de votre aide.

Bonjour,

Allez dans le code Private Sub CB_valider_click et ajouter une ligne avec l'instruction "numberformat"

Exemple pour la ligne --> C(1, 5).Value = Me.TextBoxQuantiteDevis, ajoutez cette ligne juste en dessous :

C(1, 5).NumberFormat = "#,##0.00"

Idem pour les autres cellules concernées par le format nombre

Crdlt

Bonjour,

Hello Dan

Vi, mais ça restera du texte, car issu d'un TextBox...

Perso, j'aurais converti la valeur en Double

C(1, 5).Value = CDbl(Me.TextBoxQuantiteDevis)

Bonne journée

Merci cousinhub, ça marche ! :)

Le problème des chiffres en texte est donc résolu.

Aurais tu une idée pour ce souci ?

D'ailleurs, j'ai remarqué que lorsqu'on ajoute le premier article dans un devis, celui-ci se met dans la deuxième série de champs. À partir de Reference02 pour être clair

Les suivants se mettent bien dans les colonnes suivantes correctement.

Rechercher des sujets similaires à "envoyer chiffres format nombre tableaudevis"