Ayuda con formato número

Ahora tengo otra duda.
En un UserForm tengo un TextBox, en el cual ingreso números, pero al ingresarlo a excel a una celda determinada
me arroja un error en la celda que informa que los números que estoy ingresando se guardan como texto (número almacenado como texto) y por lo tanto al sumarlos me arroja = 0, la única forma que sé para cambiarlo es manualmente... Solo espero que exista una forma de almacenar los datos como números
acá están los códigos
Option Explicit
Public ubica As String
Public control As Integer
Dim dato As Integer
Public rango As String
Public midato, midato2 As Variant
Private Sub TextBox1_AfterUpdate()
btnModificar.Enabled = True
Hoja1.Select
dato = TextBox1
rango = "A4:A34"
Set midato = Hoja1.Range("A4:A34").Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox2.Value = Range(ubica).Offset(0, 13).Value
TextBox3.Value = Range(ubica).Offset(0, 15).Value
TextBox7.Value = Range(ubica).Offset(0, 14).Value
Else
btnModificar.Enabled = False
End If
End Sub
Private Sub btnModificar_Click()
Dim Target As Range
Hoja1.Select
Dim Rng As Range
Set Rng = Range("M4:M34")
If Application.WorksheetFunction.CountIf(Rng, 1) > 1 Or Application.WorksheetFunction.CountIf(Rng, 2) > 1 Or Application.WorksheetFunction.CountIf(Rng, 3) > 1 Or Application.WorksheetFunction.CountIf(Rng, 4) > 1 Then
MsgBox "Prioridad repetida, Debe Ingresar otra prioridad", vbCritical, "ERROR"
End If
If TextBox3 = "" Or TextBox2 = "" Then
MsgBox "Por favor Faltan Datos que rellenar, revisar Prioridad", vbCritical, "ERROR"
End If
If TextBox2 >= 5000 Then
Range(ubica).Offset(0, 13).Value = TextBox2
Range(ubica).Offset(0, 15).Value = TextBox3
End If
If TextBox2 < 5000 Then
MsgBox "Ingresar un valor mayor que 5000!", vbInformation
End If
End Sub
' ingreso solo de números
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then
MsgBox "Ingresar sólo números", vbExclamation, "ERROR"
KeyAscii = 0
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then
MsgBox "Ingresar sólo números", vbExclamation, "ERROR"
KeyAscii = 0
End If
End Sub
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then
MsgBox "Ingresar sólo números", vbExclamation, "ERROR"
KeyAscii = 0
End If
End Sub

1 respuesta

Respuesta
1
Verifica que el dato no está pasando con espacios en blanco al inicio o al final.
Puedes usar Ltrim ó Rtrim para eliminar estos espacios si existen. Usa:
Range(ubica). Offset(0, 15).Value = Ltrim(Rtrim(Str(TextBox3.Text)))

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas