Error al cargar datos del textbox a la celda

Para Dante Amor :

Bueno Dante, como dijiste te hago la segunda consulta por este medio.

Ya te habia comentado el tema de los TextBox y su error, el tema es que si pongo que me agregue como texto, no se llena la columna "C" de la hoja "BaseDatos" el cual completa esa ListBox que arreglaste para imprimir, ya que al no tomarlo como numero no puede calcular, y no puedo dejar que solo me agregue como numero, ya que hay "meses" en los cuales a veces agrego información como pagado, pendiente, o en Intimación.

-Así mismo, esos TextBox me cargan mal los montos, ya que me hace un error con los separadores, las "," y los "." el cual me cambia todo, ese UserForm lo ejecuto en dos PC´s, y en una se ingresa de una forma y en la otra de otro, y así, cada vez que quiero leer la información que tiene me tiran error, no se si se puede hacer que se ejecute con la configuración del UserForm independientemente de la configuración del sistema, siendo los separadores de miles "." y los decimales ","

1 Respuesta

Respuesta
1

H o  l a:

Puedes explicarme con detalle tu solicitud:

"el tema es que si pongo que me agregue como texto, no se llena la columna "C" de la hoja "BaseDatos"

Explícame, ¿el problema lo tienes al pasar el dato del listbox a la celda?

Yo necesito pasar ida y vuelta, del TextBox a la celda y de vuelta, y necesitó ingresar números y letras. Y si configuró para que agregue números no puedo agregar texto y si configuró para texto no me suma el total, la columna "c", la que en la pregunta anterior exportaba para imprimir, por eso!

Pero vamos por partes, de lo contrario no puedo entender lo que necesitas.

¿Entonces cuál quieres que te resuelva primero?

Vamos con la más sencilla, pasar los datos de la celda al listbox.

Cuando cargas un número en un textbox, en un combobox, en un listbox, incluso en un label, el número es convertido a texto, entonces no puedes hacer nada, simplemente lo pones en el textbox y ya.

Te pongo un ejemplo con un textbox.

Primero cargas el dato en el textbox, suponiendo que tienes un número en la celda "C5"

Textbox1 = [C5]

Luego entonces, si ese dato es número, lo tienes que convertir.

    If IsNumeric(TextBox1) Then
        [C5] = CDbl(TextBox1)
    Else
        [C5] = TextBox1
    End If

Lo mismo tienes que hacer para una operación, por ejemplo:

    If IsNumeric(TextBox1) Then
        [C5] = CDbl(TextBox1) * 100
    Else
        [C5] = TextBox1
    End If

Con respecto al separador de decimales coma o punto y coma. Revisa la configuración regional de la PC, revisa que tenga la configuración del país.

También revisa en las opciones de excel, Avanzadas, verifica que tengas marcada la casilla de "Usar separadores del sistema"

E spero que te sirva la información.

No se, como te quede mejor no más, ¿primero habría una forma de hacer que introduzca de distintas formas? Porque los números en las celdas de excel tiene que estar si o si en num, porque tengo una macro que recorre las listas y actualiza los datos, y no actualiza sino esta en numero

Pero ya te expliqué como pasar los datos a una celda:

If IsNumeric(TextBox1) Then
        [C5] = CDbl(TextBox1)
    Else
        [C5] = TextBox1
    End If

Con lo que te estoy poniendo de ejemplo si lo que tienes en el textbox es número, en la celda te lo va a poner como número.

¿Ya lo probaste?

O envíame tu archivo y me explicas con detalle en dónde tienes el problema, hoja, macro, formulario, etc, etc, etc.

Claro Dante, Entendí mal, gracias, agregue la linea  "If" en cada TextBox, es algo tedioso pero me funciono igualmente.

Lo que si me gustaría una forma en que excel se configure automáticamente independientemente de cada configuración, porque no puedo andar cambiando la configuración de la Pc con respecto a los separadores de decimales y miles.

H o l a:

Con esta instrucción estableces el separador que necesitas. Ponla al inicio de tu formulario:

If Application.DecimalSeparator = "." Then
    Application.DecimalSeparator = ","
End If

Prueba en diferentes pc.

sal u dos

Sabes que no me funciona, igualmente me toma mal los separadores decimales! En una computadora tengo configurado para que la "," sea el de los miles y el "." el decimal, esta así porque hay otros programas que usan así y no puedo cambiar esa configuración, por eso quería que sea independiente.

Entonces tienes que modificar tu código.

Por ejemplo:

If Application.DecimalSeparator = "." Then
   TextBox1 = Replace(TextBox1, ".", ",")
End If

La idea es, si la computadora tiene "." como separador de decimales y tu necesitas que el separador de decimales sea "," entonces reemplaza el punto por coma.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas