PB format nombre de l'userform vers feuille en valeur texte

Bonjour,

En désespoir de cause je poste un sujet qui revient régulièrement dans les différents forums mais dont toutes les solutions données malheureusement n'ont pas fonctionnées de mon coté.

J'ai un userform avec une listbox, du texte et des nombres. Ces informations permettent une meilleure ergonomie pour enregistrer les données et à la fois permettre des tableaux de synthèses. Coté formulaire, j'ai bien réussi à mettre mes textbox en format numérique avec CDbl et VAL, mais lors du transfert dans la feuille de calcul j'ai systématiquement une erreur de valeur texte.

Ma colonne dans la feuille n'a pas de mise en forme d'alignement, j'ai tenté de convertir ma colonne en nombre, monétaire etc... Cela marche mais alors dans mon formulaire je me trouve avec des nombres qui ne sont pas avec le séparateur de milliers, ni décimales (surtout dans la listbox), dés que je prends le bon formatage de mon formulaire, le nombre s'importe bien dans la feuille de calcul mais je me retrouve avec encore un petit carré vert...

Mon formulaire et tous le codage est pris sur la base de "boisgontier", avec un tableau dynamique. Mes valeurs sont importées dans la feuille de calcul à l'aide du bouton validation avec ce code ci:

Private Sub B_valid_Click()
  Enreg = Me.Enreg

  For c = 1 To NbCol
   If Not Range(NomTableau).Item(Enreg, c).HasFormula Then
     tmp = Me("textbox" & c)
     If Not IsNull(tmp) Then
       If IsNumeric(Replace(tmp, ".", ",")) And InStr(tmp, " ") = 0 Then
         tmp = Replace(tmp, ".", ",")
           tmp = Format(tmp, "#,##0.00")
         Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
       Else
         If IsDate(tmp) Then
           Range(NomTableau).Item(Enreg, c) = CDate(tmp)
         Else
           Range(NomTableau).Item(Enreg, c) = tmp
         End If
       End If
      End If
    Else
     Range(NomTableau).Item(Enreg - 1, c).Copy
     Range(NomTableau).Item(Enreg, c).PasteSpecial Paste:=xlPasteFormats
    End If
  Next c

  UserForm_Initialize
  raz
  Unload Me ' Vide et ferme l'Userform (formulaire)
  UserFormPP.Show  'Affiche le formulaire
  Application.ScreenUpdating = True

End Sub

Pour le format nombre j'ai fais ainsi:

'Private Sub TextBox18_AfterUpdate()
    'TextBox18.Value = Format(Val(Replace(TextBox18.Value, ".", ",")), "#,##0.00")
'End Sub

Mais là impossible d'insérer des décimales, il les prends à la saisie mais ne me les reportent pas dans la feuille excel ni la listbox, alors j'ai tenté ainsi:

Private Sub TextBox18_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("0123456789.,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    If KeyAscii = Asc(".") Then KeyAscii = Asc(",")
    If InStr(TextBox1, ",") > 0 And KeyAscii = Asc(",") Then KeyAscii = 0
    If Len(Split(TextBox1 & ",0", ",")(1)) > 1 Then KeyAscii = 0
End Sub

Private Sub TextBox18_Change()
    Application.EnableEvents = False
        If InStr(TextBox18.Value, ",") = 0 Then
            entier = Replace(TextBox18.Value, " ", "")
            x = ""
            For I = Len(entier) To 1 Step -1
                x = Mid(entier, I, 1) & x
                If ((Len(entier) - I + 1) Mod 3 = 0) Then x = " " & x
            Next
            On Error Resume Next ' effacement
            TextBox18.Value = IIf(Left(x, 1) = " ", Mid(x, 2, Len(x) - 1), x)
        End If
    Application.EnableEvents = True

End Sub

J'ai bien compris que c'est sans doute un problème de formatage, mais quelle serait la solution?

Si quelqu'un de compréhensible peux m'aider? J'ai tenté de rentrer en contact avec "Boisgontier", mais malgré un site très bien conçu pour l'apprentissage des formulaires, impossible de pouvoir envoyer un message;, c'est dommage, car je suis certaine que ce ne doit pas être bien grand chose pour résoudre ma problématique.

Si jamais il passait par là...

D'avance merci en tous cas.

Bonjour Mistinguette

Avec un fichier anonymisé d'échantillon, ce serait mieux pour vos répondre

A+

Oui je comprends tout à fait je vais essayer de vous préparer cela, car mon fichier comporte plus de 50 colonnes... Alors cela va me prendre du temps... Si il n'y a pas d'autres solutions, je passerai par un envoi.

Rechercher des sujets similaires à "format nombre userform feuille valeur texte"