XL 2019 Le problème de la suppression des virgules lors de la modification des valeurs Listbox

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 !

Dadi147

XLDnaute Occasionnel
bonjour.......Ce code sert à modifier les valeurs sur le userform Le problème auquel nous sommes confrontés est lorsque nous saisissons un nombre qui inclut une virgule. Il est supprimé. Par exemple, si vous écrivez 23,56 2356 est entré Que puis-je faire pour que les valeurs soient acceptées sans changement
VB:
Private Sub B_valid_Click()
If Me.TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" Or TextBox4.Text = Empty Then
MsgBox "Sélectionnez les valeurs à modifier"
Exit Sub
Else
End If
  Enreg = Me.Enreg
  For c = 1 To NbCol
   If Not Range(NomTableau).Item(Enreg, c).HasFormula Then
     tmp = Me("textbox" & c)
     If IsNumeric(Replace(tmp, ".", ",")) And InStr(tmp, " ") = 0 Then
        tmp = Replace(tmp, ".", ",")
        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
    Else
     Range(NomTableau).Item(Enreg - 1, c).Copy
     Range(NomTableau).Item(Enreg, c).PasteSpecial Paste:=xlPasteFormats
    End If
  Next c
  UserForm_Initialize
  raz
End Sub
 
Bonjour le fil,

A part si vos paramètres Windows ont été changé par défaut à savoir la virgule pour la séparation décimale
Je ne vois pas comment c'est possible.

Il suffit d'appliquer un code basic, non 🤔

VB:
Private Sub B_valid_Click()
  ' Si numériquez 1.2 ou 1,2
  If IsNumeric(Me.TextBox1) Then
    With ActiveSheet
      ' Au cas ou, mais ne peut jamais arriver (normalement)
      .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value = CDbl(Replace(Me.TextBox1, ".", ","))
    End With
  End If
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  ' Saisie que de nombres et point ou virgule
  If InStr(1, "0123456789.,", Chr(KeyAscii)) = 0 Then KeyAscii = ""
  ' Modification du point en virgule
  If Chr(KeyAscii) = "." Then KeyAscii = Asc(",")
End Sub

A+
 

Pièces jointes

Dernière modification par un modérateur:
- 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
3
Affichages
920
Retour