Descontar un prorcentaje al valor real en un formulario

TENGO un formulario que por medio de un combobox tengo una lista de valores iniciales, en otro combo box tengo los porcentajes de descuentos 10%, 15, 20%, ok,, en otra casilla que es un texbox de hacerme el calculo del descuento repescto al valor inicial,, en excel se hacerlo perfectamente, pero en código visual me salen errores por todas partes,, pordira hacer el calculo en excel pero tendría que hacer otro combobox y elegir allí el que corresponda, pero no lo quiero así,,,

Envío parte de la imagen del formulario donde esta el problema

2 respuestas

Respuesta
1

H o l a 

prueba esto 

Private Sub ComboBox1_Change()
TextBox1.Text = Val(ComboBox1) * Val(ComboBox2)
End Sub
Private Sub ComboBox2_Change()
TextBox1.Text = Val(ComboBox1) * Val(ComboBox2)
End Sub

en el combo de descuento debes de poner 1.10; 1,15; 1,20.

Me avisas si falta algo sino valora la respuesta para finalizar

hola, no entiendo

q son : 1.10; 1,15; 1,20. ???

Hola

La verdad no hace nada

Los dos combobox llaman tanto el valor como el porcentaje de una hoja de excel

El que se debe calacular es el textbox13 "total a pagar" que viene siendo el texbox13

El combobox valor de la habitación es el combobox 8

El combobox descto es el 11

La idea es que cuando se escoja el valor del descuento inmediatamente aparezca el valor total general en la casilla del texbox13

envíame [email protected] 

Respuesta
1

.15.03.17

Buenas tardes,

De acuerdo a tus indicaciones prueba con estas instrucciones que descontarán el valor indicado y lo mostrará con dos decimales:

Private Sub ComboBox11_Change()
TextBox13.Text = Format(Val(ComboBox8) * (1 - Val(ComboBox11)), "#" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & "00")
End Sub
'  
Private Sub ComboBox8_Change()
TextBox13.Text = Format(Val(ComboBox8) * (1 - Val(ComboBox11)), "#" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & "00")
End Sub

Espero que te funcione como esperas.

Saludos

Fernando

.

Hola fejoal

Implementado tu código, esto fue lo que me salio

Te envío la imagen del form con el calculo realizado

Como veras, hace mal el calculo,, y agregas "ceros" que no deberían estar

Los datos de porcentajes de los descuentos (DSCTO) los toma de una rango en una hoja de excel, 0,15 significa 15% para este valor que se ve en pantalla, 890000 con un dscto del 15% (0,15) debería arrojar en el texbox (total a pagar) : $75.650, bueno el signo $ tampoco me aparece.. el calculo debe hacerlo en el código, pues mostrar el descto estaría demás.. así que mejor se totaliza,,

.

Sí, lo entiendo.

Por eso coloqué la instrucción:

Val(ComboBox8) * (1 - Val(ComboBox11)

Que aplica deduce del valor habitación (combobox8) el porcentaje (ComboBox11) en tanto por uno.

Por eso es curioso que no opere.

Se me ocurre pensar que el separador de decimales NO es la coma. Para los descuentos.

En tal caso, como veo en la imagen que copiaste, ese "número" en realidad sería un texto y por tanto se evalúa como un cero y no descuenta nada.

Confirmame, cual es tu separador de decimales.

Revisa, también los atributos de TextBox13, porque me llama la atención que coloque 5 decimales, cuanto mi instrucción explitamente

Aquí va de nuevo, con el formato de $

Private Sub ComboBox11_Change()
TextBox13.Text = Format(Val(ComboBox8) * (1 - Val(ComboBox11)), "$#" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & "00")
End Sub
'  
Private Sub ComboBox8_Change()
TextBox13.Text = Format(Val(ComboBox8) * (1 - Val(ComboBox11)), "$#" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & "00")
End Sub

Saludos

Fer

.

Muchas gracias fer, pero sigue el mismo inconveniente, igual no cambio nada, lo probe en otro archivo, pero no hace la operación como se necesita

Nota: pero ya la solución la reporto satisfactoriamente Adriel ortiz..

gracias fer..

Voy a reportar otro problema en el mismo archivo,, es sobre la hora que se actualice cad 10, 20, 30 o el tiempo q sea necesario,en una celda de excel,, no logro hacerlo,, tal ves me puedas ayudar allá..

.

Ok,

Sin embargo la otra operación propuesta, incrementa el valor en el porcentaje indicado [Val(ComboBox1) * Val(ComboBox2)] en lugar de restarlo como en mi solución.

Pero, si ya lo tienes resuelto, es lo único que importa.

Saludos

Fer

.

=((G9)-(G9*H9))  esa es la formula en excel y arroja el resultado

Pero en el formulario de visual, el calculo que venia siguiendo de otro todoexpertos no resulto como esperaba

Seria así

El valor de la habitación por eje: 89.000 x el numero de noches (3) por ejemplo - el descto que puede ser el 10, 12, 15% etc

= valor final

aplicandola, seria asi,,

a = combobox8 - (combobox8* comobobox11)

= texbox13

cobombox8  -->  valor habitacion
Combobox 11 ---> # de noches
combobox12 ---> dscto
Textbox 13 -->valor final

¿Dónde puedo corregir el detallle?

Ya se corrigió el detalle

Ahora si quedo perfecto

Gracias adriel

.

OK, perfecto.

En la fórmula que mencionas =((G9)-(G9*H9)), tomando G9 como factor comun, quedaría :

=G9 * (1- H9)

Que es la que te había indicado en mi primera respuesta. Ambas son equivalentes y, por tanto, arrojan el mismo resultado.

Tampoco habías mencionado la cantidad de noches en las preguntas anteriores, pero bastará multiplicar lo anterior por el valor de ese ComboBox.

Así:

TextBox13.Text = Format(Val(ComboBox8) * (1 - Val(ComboBox11)*Val(ComboBox11)), "$#" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & "00")

Me alegra haber colaborado.

Un abrazo

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas