Jump to content

[Solucionado] formulario con campo numerico


Recommended Posts

Señores buenos dias , por favor necesito una mano con este formulario, lo que pasa

que cuando le doy grabar , en el campo cantidad y comision, al momento de cerrar el formulario

ese campo se coloca de color verde y dice convertir a numerico y cuando lo sumo deste otra columna

esos datos no me suma , por favor alguien me puede a yudar.

gracias por su ayuda

adjunto mi ejemplo

Link to post
Share on other sites

Hola rvillegas buenos días, pues parece ser que se te ha olvidado adjuntar el archivo y si no te importa por favor las próximas veces que adjuntes archivos si no te importa, podrías hacerlo o bien insertandolo en "

"
o también llamado bocadillo
o cuando adjuntas el archivo, en vez de pulsar "Inserting line" pulsar en "Done" de esta manera queda como adjunto y no en linea. De esta manera se verán mejor los archivos adjuntos, ya que algunas veces pasan desapercibidos a estar en medio del texto sin ninguna diferenciación.

Pues nada un saludo, Germán.

Link to post
Share on other sites

Saludos, rvillegas.

Para que solo permita introducir numeros, coma (,) y/o punto (.) usa el siguiente codigo:

Private Sub Textcantidad_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii < 48 Or KeyAscii > 57) _
And (KeyAscii <> 46 And KeyAscii <> 44) _
Or (KeyAscii = 46 And TextBox1 Like "*.*") _
Or (KeyAscii = 44 And TextBox1 Like "*,*") _
Then KeyAscii = 0
End Sub[/CODE]

La funcion que te dio el compa ioyama (val) debe permitirte trabajar con decimales, solo que esta acepta el punto como separador.

[CODE]val(Textcomision)[/CODE]

Para usar coma, debes usar la funcion (CDbl)

[CODE]CDbl(Textcomision)[/CODE]

Espero sea lo que necesitas. Prueba y comenta.

Saludos desde Santiago, Republica Dominicana.

Link to post
Share on other sites

Hola rvillegas

Usa algo tal que

Private Sub Textcantidad_Change()

ul = Right(Textcantidad.Text, 1)

If (ul <> "") Then

If Not (Asc(ul) >= 44 And Asc(ul) <= 57) Then

If (Len(Textcantidad.Text) = 1) Then

Textcantidad.Text = ""

Else

Textcantidad.Text = Left(Textcantidad.Text, Len(Textcantidad.Text) - 1)

End If

End If

End If

Range("G4") = Val(Textcantidad)

End Sub

Un saludo desde Vitoria

Link to post
Share on other sites

Esta perfecta la ayuda , ahora me encontre con otro caso en el mismo ejemplo que les pas , por favor el campo fecha, en ese mismo esjemplo el campo fecha cuando termino de grabar no me suma , uff please una mano con ello

muchas gracias

el codigo que estoy aplicando es

Private Sub Textfechallegada_Change()

Range("A4").Select

ActiveCell.FormulaR1C1 = Textfechallegada.Text

End Sub

cuando graba no me respeta la funcion sumar si. uff

mi formula aplicada a esa fecha es

=SUMAR.SI.CONJUNTO(INGRESOS!$L:$L,INGRESOS!$I:$I,$B9,INGRESOS!$C:$C,$A9,INGRESOS!$A:$A,">="&Fecent01,INGRESOS!$A:$A,"<="&fecent02)

y no me suma por esa fecha , pero cuando lo modifico manual ahi si me suma , please una mano con eso gracias

Link to post
Share on other sites

Hola rvillegas

¿Detectaste cuál era el error la primera vez que no te sumaba las cantidades?

¿Te has fijado qué te devuelve por defecto un textbox?

Analiza lo que te te pregunto y luego trata de implementar en tu código la función CDate (revisa la ayuda de excel)

Un saludo desde Vitoria

P.S. Gracias a himself por sus aclaraciones

Link to post
Share on other sites
Saludos, rvillegas.

Para que solo permita introducir numeros, coma (,) y/o punto (.) usa el siguiente codigo:

Private Sub Textcantidad_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii < 48 Or KeyAscii > 57) _
And (KeyAscii <> 46 And KeyAscii <> 44) _
Or (KeyAscii = 46 And TextBox1 Like "*.*") _
Or (KeyAscii = 44 And TextBox1 Like "*,*") _
Then KeyAscii = 0
End Sub[/CODE]

La funcion que te dio el compa ioyama (val) debe permitirte trabajar con decimales, solo que esta acepta el punto como separador.

[CODE]val(Textcomision)[/CODE]

Para usar coma, debes usar la funcion (CDbl)

[CODE]CDbl(Textcomision)[/CODE]

Guau! Esta validacion no la habia visto he quedado sorprendido!

Podrias utilizar utilizar la funcion instr para validar cada caracter que se introduce o podrias utilizar la funcion isnumeric la cual es mas entendible!

Link to post
Share on other sites
Guau! Esta validacion no la habia visto he quedado sorprendido!

Podrias utilizar utilizar la funcion instr para validar cada caracter que se introduce o podrias utilizar la funcion isnumeric la cual es mas entendible!

por favor podria ayudarme con el campo fecha, cuando grabo y aplico una suma con rango de fecha no me la toma , solo hasta que manualmente modifico la fecha y ahi recien me suma please

Link to post
Share on other sites
Ahora con el campo fecha , please podria validar el campo fecha , para que cuando grabe grabe como fecha y asi cuando aplique una formula de sumar en criterios de fecha me lo tome.

Pues una vez que se captura la fecha en el textbox, solo queda validar si efectivamente se trata de una fecha con la función isdate.

Tambien podria utilizar el control calendar si no me equivoco. Busca en Google y obtendras las respuestas!

Link to post
Share on other sites

Hola rvillegas

Como puedes ver el compañero logroastur te incide en lo que te propuse en la séptima respuesta a este tema. Y te voy a volverv a insistir en lo mismo. Analiza las respuestas que te damos. No te quedes sólo con el resultado final. Verás que tanto himself, como logroastur, como yo mismo te hemos dado funciones que modifican el resultado de un textbox (texto) a datos numéricos de diferente índole. Repasa estos casos y usa la ayuda de VBA de excel. (Esto es un consejo que yo considero práctico, sin ningún ánimo de crítica.)

Un saludo desde Vitoria

Link to post
Share on other sites

Buenas ademas de la recomendación efectuada por ioyama otra forma de empezar a comprender los resultados que arrojan las macros es realizar en modo de prueba paso a paso es decir ejecutar el codigo con F8 y teniendo la ventana locales activada, para ello debes de ir a la barra de herramientas y en vista la seleccionas, en el codigo coloca una variable por ejemplo Dim i luego le indicas en el codigo i=textbox1 y veras que cuando la ejecutas con F8 en la venta inferior de venta local iran apareciendo las variables que poseas y como toman los valores si estos estan entre " quiere decir que es texto, si estan entre # quiere decir que es una fecha u hora y si estan sin nada son numericos

como bien dice ioyama seria conveniente que relices una visita a la ayuda de Vba en ella coloca por ejemplo Cdate y te explicara lo referente a ello de una forma bastante clara y decente para ser ayuda de Office

un saludo

Link to post
Share on other sites
Guest
This topic is now closed to further replies.
  • Crear macros Excel

  • Posts

  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy