Beruflich Dokumente
Kultur Dokumente
CAPITULO III
CAPITULO III
Estructura condicionales simples y anidadas (If..Then) Estructura de Condicin multiple (Select Case) Caso Desarrollado Caso Propuesto
Pagina N 1
CAPITULO III
Formatos: Este formato se usa cuando se tiene una sola accion que ejecutar en una condicin verdadera. Cuando se tiene 2 o mas Acciones que ejecutar por una condicin Verdadera. En este caso se ejecutara la Accion1 si la condicin es Verdadera. La Accion2 se ejecuta sin necesidad de pasa por la Condicin. If Condicin Then Accion If Condicin Then Accion1 Accion2 Accion3 End If If Condicion Then Accion1 Accion2
OPERADORES LOGICOS Y RELACIONALES Son operadores que se utilizan para crear condiciones lgicas. Una condicin lgica es una expresin que puede ser verdadera (true) o falsa (false) y puede incluir operadores aritmticos. A. Operadores Relacionales: Los operadores relacionales se utilizan para escribir condiciones que describan la relacin entre dos valores. = >< >= <= <>
Autor: Ing. Gilmer Salas Madera
Igualdad Mayor que, Menor que Mayor o igual que, Menor o igual que Diferente
Pagina N 2
CAPITULO III
Ejemplo de Condicionales en formato If Simple: Si tenemos la variable Edad Mostrar el mensaje Mayor de Edad.
Si tenemos la variable Categora que varia entre A, B y C If Categora = A Then Mensaje=Categora A Mostrar el mensaje Categora B. Si tenemos la variable Fecha de Nacimiento If FechaNac = #04/05/1990# Then Mostrar el mensaje Nacido el 4 de Mensaje=Nacido el 4 de Mayo de 1990 Mayo de 1990. End If B. Operadores Logicos: Son operadores que permiten relacionar varias expresiones lgicas. And Or Not Y Lgica (Es verdadero solo cuando ambas condiciones es Verdad de lo contrario es Falso). O Lgica (Es verdadera cuando una de las condiciones es Verdad, solo ser falso cuando ambas sean falsas). Negacion (Niega la Verdad o Falsedad)
P V V F F
Q V F V F
P And Q V F F F
P Or Q V V V F
Not P F F V V
Ejemplo de Condicionales en formato If Simple con Operadores Logicos: Si tenemos la variable Edad Mostrar el mensaje entre las Edades de 15 a 20 If Edad>=15 AND Edad<=20 Then Mensaje=Su edad esta entre 15 y 20 End If
Si tenemos la variable Categora que varia entre A, B y C If Categora = A OR Categora=C Then Mostrar el mensaje de Mensaje=Su Categora puede ser A o C Categora A o C. End If
Pagina N 3
CAPITULO III
Si tenemos la variable Fecha de Nacimiento If FechaNac>#31/12/1989# AND FechaNac<#01/01/1991# Then Mostrar el mensaje Mensaje=Nacido en el Ao 90 Nacido en el 1990. End If
Caso Desarrollado
Una tienda vende 4 tipos de productos cuyos codigos son 201, 202, 203 y 204 a los precios unitarios dados en la siguiente tabla: Codigo Precio Unitario
201 202 203 204 21.50 17.00 32.90 18.50
Como oferta la tienda ofrece un porcentaje de descuento sobre el importe de la compra de acuerdo a la siguiente tabla: Importe Compra
>=700 >=500 pero <700 >=200 pero <500 <200
Descuento
16% 14% 12% 10%
Tener en cuenta: - El Boton Formulario de Compra debe mostrar el Formulario creado en VBA, el Boton Limpiar Todo debera limpiar los productos registrados hasta el momento. - Los bordes por cada producto debera aparecer solo cuando se registre dicho producto caso contrario debe estar vacio. - El calculo del Subtotal, Descuento y el Neto a pagar se debe realizar desde VBA.
Autor: Ing. Gilmer Salas Madera Pagina N 4
CAPITULO III
Private Sub UserForm_Activate() cboCodigo.AddItem "201" cboCodigo.AddItem "202" cboCodigo.AddItem "203" cboCodigo.AddItem "204" End Sub Private Sub cmdProcesar_Click() 'Declarando variables Dim Codigo$, importeCompra@, importePago@, Descuento@ 'Entrada Codigo = cboCodigo.Text Cantidad = Val(txtCantidad.Text) 'Proceso If Codigo If Codigo If Codigo If Codigo
= = = =
= = = =
importeCompra = Cantidad * pUnitario If importeCompra < 200 Then Descuento = 12 / 100 * importeCompra End If If importeCompra >= 200 And importeCompra < 400 Then
Autor: Ing. Gilmer Salas Madera Pagina N 5
CAPITULO III
Descuento = 14 / 100 * importeCompra End if If importeCompra > 400 Then Descuento = 16 / 100 * importeCompra End If importePago = importeCompra - Descuento 'Salida txtS.Text="RESUMEN DE LA COMPRA DE PRODUCTOS" txtS.Text=txtS.Text & "---------------" & & Chr(13) & Chr(13) & Chr(10) Chr(10)
txtS.Text=txtS.Text & "Imp. de la Compra:" & importeCompra & Chr(13) & Chr(10) txtS.Text=txtS.Text & "El Descuento es :" & Descuento & Chr(13) & Chr(10)
txtS.Text=txtS.Text & "Importe a Pagar es :" & importePago 'Enviando a Excel uFila = Sheets(1).Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row Sheets(1).Cells(uFila, 2).Value = Codigo Sheets(1).Cells(uFila, 3).Value = pUnitario Sheets(1).Cells(uFila, 4).Value = Cantidad Sheets(1).Cells(uFila, 5).Value = importeCompra Sheets(1).Cells(uFila, 6).Value = Descuento Sheets(1).Cells(uFila, 7).Value = importePago 'Calculando el Total Neto de la Venta Sheets(1).Range("G21").Formula = "=SUM(g10:g20)" Sheets(1).Range("G22").Formula = "=SUM(g10:g20)*0.1" Sheets(1).Range("G23").Formula = "=SUM(g10:g20)-g22" End Sub Crear un Modulo en el Proyecto VBA y colocar el Procedimiento limpiar que eliminara todos los productos registrados en la Hoja de Calculo de Excel. Sub Limpiar() Sheets(1).Range("b10:G20").ClearContents Sheets(1).Range("G21").ClearContents Sheets(1).Range("G22").ClearContents Sheets(1).Range("G23").ClearContents End Sub Ahora: Nos toca ver el cdigo de invocacion al Formulario VBA desde Excel Sub Botn2_Haga_clic_en() frmCompra.Show End Sub
Pagina N 6
CAPITULO III
Casos Propuestos:
De los siguiente casos: Proponer el formulario en VBA y el formato de la Hoja de Excel. 1. Un Restaurante ofrece un descuento del 10% para consumos de hasta S/. 30.00, un descuento de 20% para consumos mayores y para ambos casos aplicar un impuesto del 15%. Determinar el importe a pagar por lo consumido, mostrando los importes a travs de una aplicacin VBA. 2. Pseudocodigo que determine el Salario Bruto y Neto semanal de un trabajador considerando que si trabaja mas de 40 horas, el exceso ser considerado como horas extras cuya tarifa es el 50% mas que la tarifa de una hora normal. Adems, el trabajador se somete a un impuesto del 10% solo si su salario bruto sobrepasa los S/. 80.00. Mostrar salario Bruto, Descuento y Salario Neto.
Formatos: Este formato se usa cuando se tiene 2 alternativas por una condicin evaluada.
If Condicin Then AccionVerdadera Else AccionFalsa If Condicin Then Accion1 AccionN Else Accion1 AccionN End If
Pagina N 7
Cuando se tiene 2 o mas Acciones que ejecutar por una condicin Verdadera.
CAPITULO III
Formatos de If Doble Anidadas Cuando se tiene 2 o mas Alternativas de Condicin se opta por utilizar el siguiente formato. If Condicin1 Then Acciones ElseIf Condicin2 Then Acciones Else AccionesFalsas End If
Ejemplo de Condicionales en formato If Doble: Si tenemos la variable Edad If Edad>17 Then Mensaje=Mayor de Edad Else Mensaje=Menor de Edad End If If Edad>=18 Then Mensaje=Mayor de Edad Else Mensaje=Menor de Edad End If
Pagina N 8
CAPITULO III
Si tenemos la variable Categora que varia entre A, B y C If Categora = A Then Mensaje=Categora A Mostrar el mensaje A o B o C Else If Categora =B Then dependiendo de la categora del Mensaje=Categora B Trabajador. Else Mensaje=Categora C End If
Caso Desarrollado:
Aplicacin que determine el Salario Bruto y Neto Mensual de un trabajador considerando que si trabaja mas de 40 horas, el exceso ser considerado como horas extras cuya tarifa es el 50% mas que la tarifa de una hora normal. Adems, el trabajador se somete a un impuesto del 10% solo si su salario bruto sobrepasa los S/. 700.00. Mostrar salario Bruto, Impuesto y Salario Neto. El Costo por hora varia de acuerdo a su categora: Categoria
A B C D
Pagina N 9
CAPITULO III
'Declarando las Variables Dim Trabajador$, Categoria$, Horas%, HorasEx% Dim pagoHora@, impuesto@, pagoNeto@, pagoBruto@ Private Sub UserForm_Activate() 'Llenando las Categorias en el Combo cboCategoria.AddItem "A" cboCategoria.AddItem "B" cboCategoria.AddItem "C" cboCategoria.AddItem "D" End Sub Private Sub cmdProcesar_Click() 'Capturando los Datos Trabajador = txtTrabajador.Text Categoria = cboCategoria.Text Horas = Val(txtHoras.Text) 'Proceso 'Determinando el Pago por Hora segun Categoria If Categoria = "A" Then pagoHora = 40 ElseIf Categoria = "B" Then pagoHora = 30 ElseIf Categoria = "C" Then pagoHora = 20 Else pagoHora = 10 End If
Autor: Ing. Gilmer Salas Madera Pagina N 10
CAPITULO III
'Determinando las Horas Extras If Horas > 40 Then HorasEx = Horas - 40 Horas = 40 Else HorasEx = 0 End If 'Calculando el Bruto pagoBruto = pagoHora * Horas + HorasEx * (pagoHora + pagoHora * 0.5) 'Aplicando Impuesto If pagoBruto > 700 Then impuesto = pagoBruto * 0.1 End If 'Determinar el Neto a Pagar pagoNeto = pagoBruto - impuesto 'Imprimiendo respuestas en la Caja de Texto
txtS.Text txtS.Text txtS.Text txtS.Text txtS.Text = = = = = "RESUMEN DE txtS.Text & txtS.Text & txtS.Text & txtS.Text & PAGOS" & Chr(13) & Chr(10) "-------------------------" & Chr(13) & Chr(10) "Pago Bruto es: S/." & pagoBruto & Chr(13) & Chr(10) "Impuesto es : S/." & impuesto & Chr(13) & Chr(10) "Neto a Pagar es : S/." & pagoNeto
End Sub Private Sub cmdEnviar_Click() uFila = Sheets(1).Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row Sheets(1).Cells(uFila, 2).Value = Trabajador Sheets(1).Cells(uFila, 3).Value = Categoria Sheets(1).Cells(uFila, 4).Value = Horas Sheets(1).Cells(uFila, 5).Value = HorasEx Sheets(1).Cells(uFila, 6).Value = pagoBruto Sheets(1).Cells(uFila, 7).Value = impuesto Sheets(1).Cells(uFila, 8).Value = pagoNeto End Sub
Pagina N 11
CAPITULO III
Caso Propuesto:
Aplicacin que permita determinar el importe a pagar de un cliente por lo consumido en un Restaurante, este ofrece ofertas de acuerdo a la siguiente escala:
Consumo Mayor a 100 Mayor a 60 Mayor a 30 Hasta 30 Descuento % 30 20 15 10
Formato:
Select Case Expresin Case Valor1: Accin1 Segn la Expresion se Case Valor2: Accin2 determina cual caso se . ejecutara el valor de los Case ValorN:AccionN casos puede ser Numerico o Else Textual. AccionFalsa End Select
Pagina N 12
CAPITULO III
Ejemplos de Casos
Case Numero Ejem: Case 1 Case Valor Inicial A Valor Final Ejem: Case 1 TO 100 Case Valor1,Valor2,Valor3 Ejem: Case 1,2,3 Case Is>Valor Ejem: Case Is>40 Case Is<Valor Ejem: Case Is<20
Caso Desarrollado:
Una Tienda Comercial ofrece financiamiento para todos sus productos de la siguiente forma:
N Letras 6 12 24 Porcentaje de Inters 5 10 15
Se deber ingresar el Nombre del Producto, Precio y La Cantidad de Letras a la que desea acogerse el cliente de acuerdo a esto determinar cuanto deber pagar el Cliente cada mes.
Pagina N 13
CAPITULO III
Private Sub UserForm_Activate() cboProducto.AddItem "Lavadora" cboProducto.AddItem "Television" cboProducto.AddItem "RadioGrabadora" cboProducto.AddItem "DVD" cboProducto.AddItem "Refrigeradora" End Sub Private Sub cboProducto_Click() 'Capturando el Producto seleccionado en el Combo Producto = cboProducto.Text 'Asignando el Precio a cada producto seleccionado Select Case Producto Case "Lavadora" Precio = 600 Case "Television" Precio = 1500 Case "RadioGrabadora" Precio = 800 Case "DVD" Precio = 150 Case "Refrigeradora" Precio = 1200 End Select txtPrecio.Text = Format(Precio, "0.00") End Sub Private Sub cmdProformar_Click() 'Asignando el Numero de Letras de acuerdo a la opcion escogida If opt6.Value = True Then Letras = 6 If opt12.Value = True Then Letras = 12 If opt24.Value = True Then Letras = 24 Select Case Letras Case 6:PagoMensual=Val(txtPrecio.Text)/6 + Val(txtPrecio.Text) * 0.05 Case 12:PagoMensual=Val(txtPrecio.Text)/12 + Val(txtPrecio.Text) * 0.1 Case 24:PagoMensual=Val(txtPrecio.Text)/24+Val(txtPrecio.Text) * 0.15 End Select 'Enviando los datos a la Lista lstResumen.AddItem "Resumen de Letras" lstResumen.AddItem "------------------" lstResumen.AddItem "Producto : " & cboProducto.Text lstResumen.AddItem "Precio : " & txtPrecio.Text lstResumen.AddItem "Numero Letras: " & Letras lstResumen.AddItem "Pago Mensual: " & PagoMensual End Sub
Pagina N 14
CAPITULO III
Caso Propuesto:
Se desea realizar la Venta de un Producto para lo cual se deber ingresar el nombre del producto, Precio Unitario y la Cantidad comprada se debe calcular el Subtotal a Pagar por el Cliente, tambin se le debe aplicar un descuento de acuerdo a la siguiente tabla:
SubTotal 100 o 101 102 a 200 201 a 500 A partir de 501 Descuento % 2 4 6 10
Mostrar todos los resultados de la Venta como los datos del producto, Subtotal, Descuento aplicado y Neto a Pagar (SubTotal-Descuento).
Pagina N 16