title: VBA decimal separator error
body: <p>I have a problem with VBA decimal separator.</p>
  
  <p>My file use a form to input data into tabs. </p>
  
  <p>My Variables are Currency type. </p>
  
  <p>Whenever a user enter 1,25 in the form and validate the correct amount goes in the file (ie the comma is used as a decimal separator) however if a user enter 1,256 then 1 256 is input in the file.  If a user enter 1.256 then the correct value 1,256 is input. 
  The real problem is that if a user input 1.256 in the form, validate and then reload the form on the same excel line the form will display 1,256 as excel displays it. Thus, if the user validate again the amount 1 256 will be input.</p>
  
  <p>I've tried to change excel and VBA settings to use "," as the decimal separator and nothing as the thousand separator but the problem stays.</p>
  
  <p>How can I solve this <strong>without</strong> replacing any "," by a "." when the form is loaded from the file and tell my users to use "." ?</p>
  
  <p><strong>EDIT :</strong>
  Here comes a part of the code (I removed a lot of other variables used in the tabs) :</p>
  
  <pre><code>Option Explicit
  
  
  Public ReaQte As Long
  Public ReaCost As Currency
  
  Sub InitializeVariables()
  
      'INITIALIZE COLUMNS
      ReaQteCol = Worksheets("!V").Cells(3, 23)
      ReaCostCol = Worksheets("!V").Cells(4, 23)
  
      'INITIALIZE VARIABLES
  
      ReaQte = ActiveSheet.Cells(ActiveCell.Row, ReaQteCol)
      ReaCost = ActiveSheet.Cells(ActiveCell.Row, ReaCostCol)
  
  End Sub
  
  Sub LoadCurrentRecordDetails()
      'LOAD ROW IN FORM
  
      'LOAD FORM
  
      Menu.ReaQte.Text = ReaQte
      Menu.ReaCost.Text = ReaCost
  
      'SET VISIBILITY OF FORM ITEMS
  
      'DISPLAY FORM
      Menu.Show
  End Sub
  
  Sub ModifyRecord(TargetRow As Long)
      'INSERT FORM VALUES INTO LINE
  
  
      If EstPoche Then
          ActiveSheet.Cells(TargetRow, BudCol) = Menu.BudPoche.Text
          ActiveSheet.Cells(TargetRow, MonthBudCol) = Menu.MonthBudList.Text
      Else
          ActiveSheet.Cells(TargetRow, ReaQteCol) = Menu.ReaQte.Text
          ActiveSheet.Cells(TargetRow, ReaCostCol) = Menu.ReaCost.Text
  
      End If
  
      Unload Menu
  End Sub
  </code></pre>
  
  <p>Basically this works as follow : </p>
  
  <p>The file has a lot of different sheets used by different people. All sheets have the same tab formats. Whenever a user click on a cell into a tab it opens a form and load the row details into the tab. The user can then modify stuff in the form and validate to input that into the tab.</p>
  
  <p><strong>EDIT 2 : Partial Solution</strong></p>
  
  <p>I realized that despite the fact that my variables are Currency type, the value stored in the form isn't of any type. Thus converting it like this :</p>
  
  <pre><code>ActiveSheet.Cells(TargetRow, ReaCostCol) = CCur(Menu.ReaCost.Value)
  </code></pre>
  
  <p>Solve the problem. However I only get 2 digits after coma using this method. </p>