** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Formato de número para dato exportado  de TextBox
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFormato de número para dato exportado de TextBox

 Responder Responder
Autor
Mensaje
TATA Ver desplegable
Nuevo
Nuevo


Unido: 10/Enero/2017
Localización: COLOMBIA
Estado: Sin conexión
Puntos: 7
Enlace directo a este mensaje Tema: Formato de número para dato exportado de TextBox
    Enviado: 10/Enero/2017 a las 20:36
Buenas tardes, deseo que estén muy bien.
Como la mayoría de ustedes soy autodidacta y esta, puedo decir que es mi mayor pasión.
He realizado un formulario a través del cual se ingresan valores en una hoja de Excel, el único calculo que se realiza en la hoja es la suma de los ítems, sin embargo, aunque en el TextBox y en la celda el formato se visualiza correcto para quien escribe el dato, al momento de realizar el cálculo en el total continúa apreciando $0, parece que la información se recibe con formato texto.
He buscado en muchísimos foros, he consultado en varias páginas, pero la respuesta común no me resuelve la dificultad, pues al cambiar el código continua sin generarse el valor de la suma.
El TextBox8 que en la hoja es el Valor Total (resultado de valor unitario por cantidad), es la columna que requiero sumar
Les agradezco infinitamente su apoyo con este tema, espero en algún momento poder llegar a tener tantos conocimientos como ustedes para orientar a otras personas.
Esto es lo que tengo actualmente en el UserForm

'TEXTBOX VALOR UNITARIO
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'SE DEBE INCLUIR EN LOS DOS TEXTBOX QUE TIENEN LOS DATOS, EN EL DE RESULTADO NO
If TextBox6 <> "" And TextBox7 <> "" Then
TextBox8 = TextBox6 * TextBox7
TextBox8 = Format(TextBox8, "$#,##0.0")
End If
End Sub

'TEXTBOX CANTIDAD
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox6 <> "" And TextBox7 <> "" Then
TextBox8 = TextBox6 * TextBox7
TextBox8 = Format(TextBox8, "$#,##0.0")
End If
End Sub

'GENERAR EL RESULTADO DE UNA MULTIPLICACION EN UN TEXTBOX EN CUANTO SE INGRESA UN DATO EN OTRO ANTERIOR
Private Sub TextBox7_AfterUpdate()
TextBox8.Value = CDbl(TextBox6) * CDbl(TextBox7)
End Sub

'CODIGO PARA QUE A TRAVÉS DEL BOTON SE EJECUTE EXPORTAR DATOS A EXCEL, GUARDAR, LIMPIAR CASILLAS Y UBICAR EN UNA CELDA DETERMINADA
Private Sub CommandButton2_Click()
If ComboBox2.Value <> "" Then
Range("a45").End(xlUp).Offset(1, 0).Select 'Range ("a45") quiere decir el largo de la columna, se define porque de lo contrario continua escribiendo luego de los datos de la poliza
ActiveCell = ComboBox2.Value
ActiveCell.Offset(0, 1) = ComboBox3.Value
ActiveCell.Offset(0, 2) = ComboBox4.Value
ActiveCell.Offset(0, 3) = TextBox6.Value
ActiveCell.Offset(0, 4) = TextBox7.Value
ActiveCell.Offset(0, 5) = TextBox8.Value
End If
'CODIGO PARA VACIAR LAS CASILLAS DILIGENCIADAS
ComboBox2 = ""
ComboBox3 = ""
ComboBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
'CODIGO PARA UBICARSE EN UN CAMPO ESPECIFICO
ComboBox2.SetFocus
End Sub
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 11/Enero/2017 a las 03:01
Los ComboBox y TextBox manejan textos (aunque hayas escrito números). Para operar con ellos es conveniente almacenar sus valores en variables numéricas y operar con ellas.

Por ejemplo:
Option Explicit
Dim valor2#, valor3#, valor4#, valor6#, valor7#, valor8#

'TEXTBOX VALOR UNITARIO
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  Producto
End Sub

'TEXTBOX CANTIDAD
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  Producto
End Sub

Private Sub Producto()
  With UserForm1
    valor6 = Val(.TextBox6)
    valor7 = Val(.TextBox7)
    valor8 = valor6 * valor7
    If valor8 > 0 Then
      .TextBox8 = Format(valor8, "$#,##0.0")
    End If
  End With
End Sub

'CODIGO PARA QUE A TRAVÉS DEL BOTON SE EJECUTE EXPORTAR DATOS A EXCEL, GUARDAR, LIMPIAR CASILLAS Y UBICAR EN UNA CELDA DETERMINADA
Private Sub CommandButton2_Click()
  Dim fila&
  valor2 = ComboBox2.Value
  valor3 = ComboBox3.Value
  valor4 = ComboBox4.Value
  If valor2 > 0 Then
    fila = Range("A45").End(xlUp).Offset(1).Row 'Range ("a45") quiere decir el largo de la columna, se define porque de lo contrario continua escribiendo luego de los datos de la poliza
    Cells(fila, 1).Value = valor2
    Cells(fila, 2).Value = valor3
    Cells(fila, 3).Value = valor4
    Cells(fila, 4).Value = valor6
    Cells(fila, 5).Value = valor7
    Cells(fila, 6).Value = valor8
  End If
'CODIGO PARA VACIAR LAS CASILLAS DILIGENCIADAS
ComboBox2 = ""
ComboBox3 = ""
ComboBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
'CODIGO PARA UBICARSE EN UN CAMPO ESPECIFICO
ComboBox2.SetFocus
End Sub


Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
TATA Ver desplegable
Nuevo
Nuevo


Unido: 10/Enero/2017
Localización: COLOMBIA
Estado: Sin conexión
Puntos: 7
Enlace directo a este mensaje Enviado: 11/Enero/2017 a las 20:17
Hola AnSanVal, agradezco mucho tu ayuda pero al ingresar el código que me enviaste no me funciona, deja de exportarme los datos a la hoja de Excel, adicionalmente me ha quitado el formato contable que tenia el TextBox del Valor Total.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 12/Enero/2017 a las 01:17
Lo he probado antes de ofrecértelo y me funciona. Posiblemente se me habrá escapado algún detalle que no he sabido ver.

Este enlace contiene el ejemplo que hice para las pruebas. Solamente tiene el añadido de que controlo el contenido de los ComboBox (solo permite datos de la lista origen) y controlo que en los textBox solo permite entrar números.

Por favor cuéntame en que me equivoqué.

Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
TATA Ver desplegable
Nuevo
Nuevo


Unido: 10/Enero/2017
Localización: COLOMBIA
Estado: Sin conexión
Puntos: 7
Enlace directo a este mensaje Enviado: 12/Enero/2017 a las 15:14
Hola AnSanVal, valoro muchísimo toda tu ayuda pero aun cuando modifico el código, los valores que se ingresan al formato de Excel (a través del formulario) no me permiten ser sumados, parece que los continua recibiendo como texto. Y cuando ingreso al archivo que me adjuntaste en link, aparece en otro lenguaje y no puedo ver el código que me compartiste. muchísimas gracias y disculpa!!!
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 12/Enero/2017 a las 17:18

"... cuando ingreso al archivo que me adjuntaste en link, aparece en otro lenguaje..."

¿Otro lenguaje?  ¿A que te refieres?

La hoja solamente tiene Campo1, ... Campo6. Si te refieres al código VBA está en inglés , siempre es así, que yo sepa no existe otro lenguaje.


"... y no puedo ver el código que me compartiste..."

El código no está oculto ni protegido. *


Pues solamente quedaría: que compartas tu archivo para ver porque no puedes hacer cálculos (existen servicios gratuitos como por ejemplo OneDrive), o también (aunque no tan efectivo); selecciona un rango de tu hoja (que no permita hacer cálculos), das a Copiar y aquí en un nuevo mensaje das a Pegar.




*Editado: Podría ser tema de la seguridad. ¿Has autorizado la edición del archivo (el mío) y la ejecución de macros?






Editado por AnSanVal - 12/Enero/2017 a las 18:10
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 12/Enero/2017 a las 18:28
Creo que se a que te refieres con otro lenguaje.

¿Te refieres a que la extensión del nombre de archivo en vez de tata.xlsm mi archivo tiene tata.rar ?

Si es eso, es que es un archivo comprimido con WinRar para que ocupe menos espacio, si no, no me lo admite el servidor. Debes descomprimirlo antes de usarlo. Existen varias aplicaciones capaces de descomprimir los ficheros rar, de pago y gratuitas, infórmate en google.

El fichero una vez descomprimido verás que realmente el nombre es: tata-B.xlsm.

Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
TATA Ver desplegable
Nuevo
Nuevo


Unido: 10/Enero/2017
Localización: COLOMBIA
Estado: Sin conexión
Puntos: 7
Enlace directo a este mensaje Enviado: 13/Enero/2017 a las 17:09
Hola AnSanVal, tienes toda la razón, luego de descomprimir el archivo pude ver el código que tan amablemente me compartiste, finalmente por más que coloque todo igual, en Excel continuaban pasando los valores como texto, no sé porque pues con el formulario tuyo no había ningún inconveniente, los datos pasaban como valores, por lo que me las ingenie colocándole un código que quitase las comas y cambiase los puntos por coma, de esta manera me convierte el texto a numero; te lo comparto para que lo mires, podría ser que en algún momento te sea de utilidad. Finalmente te agradezco infinitamente tu diligencia, paciencia y amabilidad para apoyarme con este tema que aún me es confuso. Mil gracias de nuevo. Saludos,
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 13/Enero/2017 a las 19:34
Me alegra que lo hayas podido ver. Pasé por alto lo de .rar porque di por hecho que si estás trabajando con VBA y Formularios, conocerías Rar, Zip, etc. (dar algo por hecho no siempre funciona).

«... te lo comparto para que lo mires...» .  No has puesto el enlace para poder descargarlo.


Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
acilu Ver desplegable
Habitual
Habitual


Unido: 11/Enero/2007
Localización: Zamora
Estado: Sin conexión
Puntos: 134
Enlace directo a este mensaje Enviado: 10/Junio/2017 a las 17:12
por si te sirve:
A mi me pasaba igual al exportar desde acces y lo resolví multiplicando por uno las celdas afectadas.
asi adoptaban el formato de número.

ExcelSheet.Application.cells(m, n).Value = ExcelSheet.Application.cells(m, n).Value * 1

Quizas puedas hacer algo parecido
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 10/Junio/2017 a las 18:20

Hola acilu (y a todos).



Otro método sin necesidad de código VBA:


- En una celda libre (cualquiera) escribe 1.

- Selecciona la celda que contiene el 1 y da a COPIAR.

- Selecciona todo el rango de «números texto».

- Pegado especial...  >  Pegado especial... >  (Operación) Multiplicar > Aceptar.



Cierro el hilo.


Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable