Gente del foro:
Tengo un pequeño problemita con un cuadro de dialogo para ingresar un número
el cual es el siguiente.
Tengo un formulario llamado UserForm4 que tiene un TextBox2 en el cual se
ingresa un número que es un importe. He definido una variable como Currency
que toma el valor ingresado en TextBox2, lo convierte en número para luego
pasarlo como número a una base de datos en la cual se van volcando los
registros (este proceso sucede al presionar un CommandButton, dentro del
cual esta todo el código que menciono).
Hasta ahi todo bien. Lo que sucede es que cuando el importe que se carga en
el TextBox2 posee decimales (por ejemplo "50.10") el dato que copia en la
hoja de cálculo es "5,010.00" en lugar de "50.10". Experimentando he
descubierto que si se ingresa "50,10" el dato se vuelca correctamente como
"50.10". Lo cual me parece extraño porque la configuración de Excel es "."
para separar decimales y "," para miles.
El problema se soluciona si cambio la configuración de separadores (ya que
al teclear el punto del teclado numérico pondría la coma) pero como aqui
trabajamos con "." como separador decimal predeterminado y "," como de
miles, cambiar esa configuración es un problema. Y es un engorro que haya
que escribir la coma para ingresar números en el TextBox2 no pudiendo usar
el "." del teclado numérico.
Espero que me haya explicado bien. Incluyo el código abajo, que de paso
seguro se puede mejorar, ya que como verán mi forma de escribir códigos es
muy rudimentaria.
Desde ya muchas gracias. Saludos!!
Private Sub CommandButton1_Click()
Dim Importe As Currency
Dim Numero As Long
Dim FemisioN As Date
Dim FvtO As Date
If ListBox1 = Empty Then GoTo 100
If TextBox1 = Empty Then GoTo 100
If TextBox2 = Empty Then GoTo 100
If ComboBox10 = Empty Then GoTo 100
If ComboBox11 = Empty Then GoTo 100
If ComboBox12 = Empty Then GoTo 100
If ComboBox13 = Empty Then GoTo 100
If ComboBox14 = Empty Then GoTo 100
If ComboBox15 = Empty Then GoTo 100
If ComboBox16 = Empty Then GoTo 100
Sheets("Ajustes").Select
Range("A1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.FormulaR1C1 = ListBox1
ActiveCell.Offset(0, 1).Select
FemisioN = ComboBox11 + "/" + ComboBox12 + "/" + ComboBox13
ActiveCell.FormulaR1C1 = FemisioN
ActiveCell.Offset(0, 1).Select
Numero = TextBox1
ActiveCell.FormulaR1C1 = Numero
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = ComboBox10
ActiveCell.Offset(0, 1).Select
FvtO = ComboBox14 + "/" + ComboBox15 + "/" + ComboBox16
ActiveCell.FormulaR1C1 = FvtO
ActiveCell.Offset(0, 1).Select
Importe = TextBox2
ActiveCell.FormulaR1C1 = Importe
ListBox1 = Empty
TextBox1 = Empty
TextBox2 = Empty
ComboBox10 = Empty
ComboBox11 = Empty
ComboBox12 = Empty
ComboBox13 = Empty
ComboBox14 = Empty
ComboBox15 = Empty
ComboBox16 = Empty
GoTo 200
100
UserForm4.Hide
Load UserForm5
UserForm5.Show
200
UserForm4.Hide
Sheets("Controles").Select
Range("A1").Select
End Sub
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Sheets("Parámetros").Select
Range("C1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
ListBox1.AddItem ActiveCell
Loop
Range("E1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
ComboBox10.AddItem ActiveCell
Loop
For x = 1 To 31
ComboBox11.AddItem Str(x)
ComboBox14.AddItem Str(x)
Next
For x = 1 To 12
ComboBox12.AddItem Str(x)
ComboBox15.AddItem Str(x)
Next
For x = 2007 To 2010
ComboBox13.AddItem Str(x)
ComboBox16.AddItem Str(x)
Next
With ListBox1
' .Parent.Parent.Value = .Parent.Index
.SetFocus
End With
Sheets("Controles").Select
Range("A1").Select
Application.ScreenUpdating = True
End Sub
CONTADURIA
Leer las respuestas