You are on page 1of 57
_. qpeanewuojul 9p 01403210927 la significativa | contenidos: ‘ondicionales, Repeticin) + Estructuras de Control (Decisién, Funciones C ~ Controles de Seleccin y Contenedores (ListBox, Combo80») Controles Contenedores (Marco, MultiPage) Graficos (Incrustado u Hoja de Grafico) Validacién de Datos (Listas dentro de las Celdas). aaa | saberes Previos: + Enel espacio de aprendizaje el docente ejecuta un Diagnéstico Inicial escrito a los estudiantes a través de la tipologia Respuesta Breve: 1. éHa escuchado sobre las estructuras de control? 2. eAlguna ver, ha creado graficos en Excel? 3. éTiene conocimiento usted, sobre Ia funcionalidad de los controles de seleccién? 4, Segiin su opinién, épor qué es importante la validacién de datos? BP edicionesferes@yahoo.com g sstruccion de Saber 4 Eldocente explica de manera Magistral la unidad, asignada ejecutan las instrucciones que emite el continuacién: , alternamente los discentes en su cornputadora docente como en el bosquejo que se muestra a 4 Enel Laboratorio de Computo, el discente refuerza conocimientos ejecutando las practicas que se muestran en el libro paso a paso bajo la asesoria y supervision del docente. * Desarrolla los ejercicis practicos en la autoevaluacién propuesta al final de la unidad, Discusion Dirigida Instruectones: El estudiante y el docente discuten fa unidah ef estudiante realiza las artacigngs en el siguiente Cuadro - Resumen (C-R): GE... Estructuras de Control las estructuras de control permiten controlar el flujo de ejecucién de un programa. VBA permite dos tipos de estructuras de control: @ Estructuras de Decisién @ Estructuras de Repeticion Estructuras de Decisién Controlan la ejecucién de otras instrucciones en los algoritmos. La ejecucién de ciertas instrucciones pueden efectuarse mediante la evaluacién de los datos que representa una condicién, tal como la siguiente: una computadora puede estar encendido, la velocidad de un automdévil puede incrementarse hasta un punto en que no se pueda detener. Las estructuras de decisién permiten tanto ejecutar la instruccién como desviar o evitar su ejecucién. VBA cuenta con las siguientes estructuras de deci @ IF..Then, If...Else...Then @ Select Case IF..Then, If..Else...Then If..Then, ejecuta una o més instrucciones dependiendo de la condicién. Sintaxis: Sentencias End if Condicién: Representa una comparacién 0 cualquier exPre False. sidn que dé como resultado un valor True o todas las Sentencias que siguen a la palabra clave Then. Sicondicién es True, VBA ejecuta nao varias lineas a ejecutar por VBA cuando la condicion Sentencias: Representa las instrucciones de sea True. Eemplo: dad. © Determinar siel alumno es mayor de @ Ifedad >=18 then “El Alumno es mayor de Edad End IF Ediciones Fares | 207 Laboratorio de Informatica It © Calcular ef 12% de impuesto. If Pagalmpuesto = "s” then Impuesto = Subtotal * 12/100 End If ¥f..Then...Else, ejecuta uno de varios bloques de sentencias. Sintaxis Mf condicion then Bloque de sentencias 1 Elself condicion2 then Bloque de sentencias 2 Else Bloque de sentencias n End if 's False procede a evaluar la condicion2, y si la condicion2 es false, VBA evaltia primero la condicion1, procede a evaluar la condicion3 y asi sucesivamente, hasta encontrar una condicién True. En el momento en que VBA encuentra una instruccién True, ejecuta el bloque de instrucciones correspondientes a la condicién y después ejecuta el cédigo que sigue a End If. De manera opcional puede incluir un bloque de instrucciones Else, que VBA ejecutard en caso que ninguna de las condiciones sea True. Ejemplos: @ Decir si un alumno Aprobs o Reprobs una materia, If promedio >=70 then Calificacién = “Aprobo” Else Calificacién = “Reprobé” Endi If 208 | Ediciones Fares Unidad Iv @ _Determinar el tipo de calificacién en relacién a la siguiente tabla y<36 Insuficiente >=36 y<70 Necesita Mejorar >=70y<81 Satisfactorio >=81y 91 ‘Muy Satisfactorio >=91y <=100 ‘Avanzado Caso contrario Valor fuera de rango and Nota <36 then If Nota Insuficiente” Calificacié Elself Nota >=36 and Nota <70 then Calificacion = “Necesita Mejorar” Elself Nota >=70 and Nota <81 then Calificacién = “Satisfactorio” Elself Nota >=81 and nota <91 then Calificacién = “Muy Satisfactorio” Elself Nota >=91 and nota <=100 then Calificacién = “Avanzado” Else ‘valor fuera de rang’ Calificacion End if @_Precios de pasaje aéreo segin destino: Ediciones Fares | 209 “Laboratorio de Informatics I If Destino = “A” Then Preci = 200 Elself Destino = “B” Precio = 400 Elself Destino = “C” Precio = 500 Elself Destino = “D" Precio = 600 Else Precio = “* End if Select Case Uecuta selectivamente un bloque de sentencias de entre varios bloques. Select Case, ofrece posibilidades similares a fa instruccién If, ..Then...Else, pero hace que el cédigo sea ‘egible cuando hay varias opciones, La instruccién Select Case funciona con una Unica expresién de pr que se evaliia solamente una ver y al principio de la estructura. VBA compara los valores de 12 expresion con los valores de cada “Case” de la estructura y si hay coincidencia ejecuta el bloque de sentencias correspondientes a ese Case. Sintaxis: Select Case expresion Case listo_expresion1 Bloque de sentencias1 Case listo_expresion2 Bloque de sentencias2 Case Else Bloque de sentenciasn End Select 210 | aw expresion: Indica la variable u objeto a evaluar. lista_expresiont: Indica el valor que puede contener expresién, Bloque de Sentenciasi: R fepresenta el conjunto de instrucciones que se ejecutarén en caso que lista_expresion1 es igual al valor que contiene expresién ‘ase Else, es opcional i cc P% Y Se utiliza para ejecutar el bloque de sentenciasn en caso que ninguna de los casos anteriores se cumpla. Ejemplos: @ Precios de pasaje aéreo segin destino. [esting [Precio] A 200 8 400 c 500 > 600 Select Case Destino Case “A” Precio = 200 Case “B” Precio = 400 Case "C” Precio = 500 Case “D” Precio = 600 Case Else Precio=0 End Select Mientras Select Case evalia una expresién cada ver al principio de la estructura, If.Then..£lse puede evaluar una expresién diferente en cada sentencia Else. Sustituya If...Then...£lse con una estructura Select Case sila estructura If y cada instruccién Elself evalia la misma expresion. & Determinar el tipo de calificacin en relacién ala siguiente tabla: 0235 Insuficiente 36.969 Necesita Mejorar 70.280 Satisfactorio 31090 Muy Satisfactorio 910100 Avanzado Caso contrario Valor fuera de rango Ediciones Fares | 213 212 Laboratorio de informatica I Select Case Nota Case 0 to 35, Calificacién = “Insuficiente” Case 36 to 69 Calificacién = “Necesita Mejorar” Case 70 to 80 Calificacién = “Satisfactorio” Case 81 to 90 Calificacién = “Muy Satisfactorio” Case 91 to 100 Calificacién = “Avanzado” Case Else ‘Valor fuera de rango” End Select Funciones Condicionales VBA cuenta con las funciones condicionales siguientes: © Choose © iF © swich Choose Devuelve un valor de indice basado en una lista de argumentos funcionales proporcionados ©o™? alternativas. El primero es el indice 1, el segundo es el indice 2 y asi sucesivamente. Sintaxis: Choose(indice,eleccién-1, eleccién-2,....eleccion-n) ue Devuelve uno de dos valores basados en el resultado Booleano de un 7 a expresion. Sintaxis: liF(Prueba, ValorVerdadero ValorFalso) Ediciones Fares switch evalda una li a de expresion: ipo es proporc aa lonadas en la forma de una mat es iatriz de parimnetros y devuelve el tipo lista que resulte verdadera. Sintaxis: switch(condicion = 1, valor, condicién = , Valor2, condicién= Ejercicio: Eneste ejercicio se creara icacié nr n aplicacién que permitird practicar y comprobar el funcionamiento de cad le decision. El usuario it 4 ‘ : ; . ingresaré un nimero en un Te un producto de la lista, dard cli eee ee 7 ic en cada uno de los botor snes que permitan comprobi elegido y el result j eer es y “re ae se mostrard en un Label. Para este ejercicio crear un proyecto con el nombre ce ecisiones”, el disefio de la interfaz debe verse como en la siguiente imagen: : Labelt P Ss [28 Peones TY TextBoxt abel? LP ———JJ Sa Command 2. Sandias on eee on = Command3 ngee ‘Command4 Command5 Labelé roles utilizados en el Formulario Contr Label Caption _|Eseriba el eign de su produto Label2 Caption 1-Melones. Label3 Caption 2. Sandias Label4 Caption | 3=Mangos [aves | caotion Label5 Connon faces | tabel> _— ion _| ; Lee con | oduct tee: _——— [tapers __| co0ton_— Caption _ | vaclo a Name [uimessado on agcz fname | eon re [name 20# Mane urea | [caption_ -———| Name Brolf [ Name__t Command? {capron _wsodete om Ediciones Fares 213 & Laboratorio de ntrmans 214 Name Binchose Commands Caption Uso de Chose Name sinSwitch Commands Caption, Uso de Switch Name inSelectCase Commanas Caption, ‘Uso de Select Case Para la programacién del ejercicio “Toma de decisions’, hacer doble clic en cada uno de los botones y escribir la programacién correspondiente a cada botén. % Botén “Uso de If” Private Sub BtnlF_Click() If TxtEleccion Text = 1 Then LbIResultado.Caption = “Melones” Elself TxtEleccion Text = 2 Then LbIResultado.Caption = “Sandias” Elself TxtEleccion Text = 3 Then LbIResultado.Caption = “Mangos” Elself TxtEleccion.Text = 4 Then LbIResultado.Caption = “Peras” Else LbIResultado.Caption = “” End if End Sub La instruccién “IF TxtEleccion Text =1 Then”, evalda que si el texto ingresado en “TxtEleccion” es 1 entonces se mostrard en “LblResultado” la palabra “Melones”, dado por la instruccién (LbIResultado.Caption * “Melones”), de no ser 1 se sigue con la instruccién “Elself TxtEleccion Text = 2 Then”, que evalda siél texto ingresado en "TxtEleccion” es 2, entonces se mostrard en “LbiResultado” la palabra “Sandias” 624° por la instruccién (LbIResultado.Caption = “Melones”), de no ser 1.0 2 se sigue con la instruccian “Ee ‘TatEleccion Text = 3 Then’, que evalia si el texto ingresado en “TxtEleccion” es 3, entonces se most? en “LbIResultado” la palabra “Mangos”, dado por la instruccién (LbiResultado.Caption = "Mangos") 4° ser 1, 2.0 3 e sigue con la instruccién “Elself TxtEleccion-Text = 4 Then", que evalda si el texto ing? fen “TxtEleccion” es 4, entonces se mostraré en “LbiResultado” la palabra “Peras”, dado por la instruccio™ (LbIResultado.Caption = “Peras”), de no ser 1, 2, 3 0 4 se sigue con la instruccién “Else”, QUE evalla # Ediciones Fares “TxtEleccion” s ntlbecatteao" "8 cumple con ninguna de las instrucciones anteriores, de ser asi limpias ultado” dado por Ia instruccién (LbIResultado. Caption =“). el texto ingresado en 4 Botdn “Uso de lif” Private Sub Btnllf_Cliek() UbIResultado Captior “Sandias) , “Sandias", En la programacién “ TrtResultado.Caption = iif(TxtEleccion Text = 1, “Melones' If(TxtEleccion.Text 3, “Mangos”, lif(TxtEleccion Text = 4, “Peras", *)}))"; se le asigna a “LbIResultado” el valor _lif(TrtEleccion Text de Melones, Sandias, Mangos, Peras o se deja en blanco dependiendo del valor que se le ingrese 2 “TrtEleccion”. Se trabaja con IIF anidado y se evaliia de la siguiente forma © Primero se evalia lif{TxtEleccion.Text = 1, “Melones”, dénde se verifica siel valor ingresado ‘en “TxtEleccion” es 2, de ser asi se asigna a “LbIResultado” el valor de melones. © Sielprimer lif no da como resultado verdadero se evalua Iif(TxtEleccion.Text = 2,"Sandias’, dénde se verifica si el valor ingresado en “TxtEleccion” es 2, de ser asi se asigna a “UpiResultado” el valor de Sandias. Siel primero 0 segundo lifno dan como resultado verdadero se evalia If(TxtEleccion.Text 3, “Mangos”, donde se verifca sil valor ingresado en “TxtEleccion” es 3, de ser asi se asigna a “LbIResultado” el valor de Mangos. © Sielprimero, segundootercerilfnodancomoresultado verdadero seevalia iffTxtEleccion Tort = 4, "Peras”,“", dénde se verifia si el valor ingresado en “TxtEleccion” es 4, de ser asi se asigna a “LbIResultado” el valor de Peras; sino da como resultado verdadero los riores se le asigna 2 “LbIResultado” u in valor vacio indicado por “”. ante e © Botdn “Uso de Choose” ee [Private Sub Btnchose_Click) tion = Choose(T»tEleccion Text +, Mangos" “Peras") “Melones", Lnthesuttads Ca PidSub Choose(TxtEleccionText, “Melones", “Sandias”, “LpIResultado.Caption En {a instruccion meramente el valor ingresado en TxtEleccion, y se devuelve el -peras")", se evalua prin “nangos”, ssponda 2 cada posicit valor que co! ‘on que sea igual al valor de TxtEleccion. Asi si Txt€leccion = 1 Ediciones Fares | 215 de Informatica It n= 2entonces devuelve como resutagg resultado Melones, Si TxtEleccior fe corresponda con el indice entonces devuelve como r para cada valor ingresado y qu Sandias y asi sucesivamente © Botén “Uso de Switch” Private Sub BtnSwitch_Click() LUbtResultado Caption = Switch(TatEleccion Text “Mangos”, TxtEleccion Text , “Melons”, TxtEleccion Text = "Peras") “Sandias", TatEleccion Text = 3, End Sub Siel valor ingresado en TxtElecion es 1 entonces se devuelve “Melones', si el valor ingresado es2 se devuelve “Sandias”, si es 3 se devuelve “Mangos” y asi sucesivamente hasta evaluar todas las condiciones. % Botén “Uso de Select Case” Private Sub BtnSelectCase_Click() Select Case TatEleccion Text case UbiResultado.Caption = “Melones” case? UblResultado.Caption = "Sandias” case3 UblResultado Caption = “Mangos” cased UbIResultado Caption Case Else UbIResultado.Caption End Select End Sub La instrucci6n “Select Case TxtEleccion.Text”, toma el valor ingresado en Txt€leccion y se come” cada caso con Case 1, Case 2, etc., que indica que siel valor ingresado en TxtEleccion es 2enton® eras” se ejecutarén las instrucciones entre Case 1 y Case 2 luego se abandona el Select (28@ Y ' . sucesivamente para cada caso. En este ejercico si el caso es 1 LbiResultado serd igual a Me™ sies 2 LblResultado seré igual a Sandia, sies 3 entonces LbiResultado serd igual a Mane®s: 5 entonces LbiResultado serd igual a Peras, , - alt La instruccién Case Else eecuta las instrucciones entre Case Else y End Select cuande introducido en TxtEleccion no corresponda con ningun valor evaluado en los casos. 216 | Ediciones Fares programacién Completa del Ejercicio Toma de Decisiones Private Sub BtnChose_click() UoiResultado.captio End sub Leeds Private Sub BtniF_Click() WTatEleccionText = 1 Then , ‘Melones” Elself TxtEleccion Text = 2 Then ‘Sandias” Elself TxtEleccion Text = 3 Then UbiResultado.Caption = "Mangos" Elself TxtEleccion Text = 4 Then LbiResultado.Caption = “Peras” Else UbiResultado.Captio End if End Sub UbiResultado.Captios UbiResultado.Captio Private Sub Btnilf_Click() LpiResultado.Captior “Sandia End Sub 1, *Melones",If(TxtEleccion Text ."Peras”, Private Sub Btnselectcase_Click() Select Case TrtElecclon.Text case1 LbiResultado.Captior ‘Melones” sultado, caption = St eras") LoiRes Boro pattteccion Ten = 3 "MAMBO? » sandias End Sub. jtcloccionText = 4, hoaseTatEleccion.Text, “Melons”, “Sandias", “Mangos 2) cose? cased coset erst anges a MeTateclon Text © 1, "Melones", TntEleccion.Test © 2, _ Ediciones Fares 217 bee EE vomit 0 218 Estructuras de Repeticion (Bucles) Una estructura de repeticién 0 bucle es una sentencia que permite ejecutar una 0 mas lineas de cédigo repetitivamente hasta que la condicién asignada a este bucle deje de cumplirse o hasta que se transforme en cierto valor, Con las estructuras de repeticién se podran resolver problemas que necesiten que una accién se repita varias veces, como ser la impresién de algun archivo, la lectura de un flujo de datos, un recorrido por medio de los datos de un rango, etc. Los bucles soportados por VBA son: ® Do..Loop © For..Next © For...£ach..Next © while Do...Loop Repite la ejecucién de un bucle de instrucciones mientras la condicién permanezca en True o hasta que la condicién se convierta en True. El bucle Do...Loop tiene dos variaciones (While y Until) que pueden comprobar la condicién una vez al inicio o al final del bucle. Si prueba la condicién al inicio del bucle, es posible que este no se ejecute ninguna vez y si prueba la condicién al final es posible que el bucle se ejecute al menos una vez. Un ciclo de repeticién Do...Loop necesita los siguientes cuatro valores para llevar a cabo una tarea asignads: Una variable que sirva de contador o control. Que la variable contador tenga un valor inicial. ® La variable de control tiene que tener un incremente o decremento para modificar el valor de la variable de control cada ver que haya una iteracién por el ciclo. ard si el ciclo continiia o no. © Lacondicién deter Sintaxis: Do [{While | Until} condicién) Instrucciones Loop Ediciones Fares am onde: 4% Condicién: Contiene la légica de la evaluacién, 4 Instrucciones: Es el bl ' loque de are ate a que se ejecutarén mientras la condicién permanezca riante While o mient i " euen de ta variants Und! ras la condici6n permanezca en False mediante 4 Loop: Finaliza \a instruccién del bloque do. Ejemplo: Se necesita sumar todos los valores que estan en la columnal, para desarrollar este ejemplo, realizar las siguientes instrucciones: 4. Crear un libro con el nombre de Estructuras y escribir en la Hojai los siguientes datos: vahShewsbibs de opciones Desarrollador. 2. Activar la cinta ise sobre cualquiera de las cint a. Dar clic derecho del mou" tas de opciones. b._ Dar clic en Personalizar cinta de opciones. de acceso répide sez rapide per debajo de a cints de opciones R Ediciones Fares | 239 a Laboratorio de Informatica il ©. Activar Desarrollador. tenensnnctaseoezes Dar clic aqui 3. Dar clic en la cinta Desarrollador. DATOS —_REVSAR VISTA _|_DESARROLLADOR 4, Enel grupo Controles, dar clic en Insertar. = ya By ee aS ae ert 5. Darclic en Botdn de comando. Cette dorms # SRaaae -— eee cain coms __] tues] aciay | ‘Botén de comando (control ActiveX) Insets un cential de boton de comande, a 6. Dibujar dos botones en Ia Hojal. Commandauttont Commanddutton2| 220 | Ediciones Fares 7. Ena cinta Desarrollador dar clic en Propiedads lades. RL? Dream Inver ody STV tae Dre tt Sart 8, Cambiar las propiedades a los botones. ° € Propiedades [CondBowhte Commandbion 7 7 tates |r cate | rode downiell 9. Escribir el cédigo de cada botén y desactivar el Modo Disefio. eee BZ Sonate sora ado SONS” ese ca cnt edge Desde aqui puede activar 0 desactivar el Modo Diseito, © Cédigo del Botén Uso de Do While. T ceabommnie einer Dam Rasa eede Born sseleccisear ta cel __ Unidad Wa instruccién Do While ActiveCell.Value <> Slecutarén mientras la celda activa no este vacia indica que las instrucciones entre Do While y Loop se Ediciones Fares 2 Laboratorio de Informatica i a. La instruccisn ActiveCelLOffet(1, 0) Select se mueve una celda debajo de la celda activ Lainstruccién Resultado = Resultado + ActiveCell,Value, suma a Resultado el valor que tiene Resultado ‘més el valor de la celda activa. La instruccién ActiveCellValue = Resultado, asigna el valor de la variable Resultado a la celda activa que seré dos celdas debajo de la celda que tiene el ultimo valor. Las instrucciones que siguen a Loop se ejecutan hasta que se encuentra una celda vacia. ‘© Cédigo del Botdn Uso de Do Until. yrivate Sub CeaDoUntil_Click() Diz Resultado As Long * Range ("31") Resultado = Range ("Bi") Do Until ActaveCell.Value = ‘ActiveCell.offset (1, 0) Select Resultado = Resultado + ActiveCell.Velue Loop Retivecell.offset(1, 0) .Select Retivecell.Value = Resultado End Sub de 1a variable eida BL a Resuidado e2 valor de BE La instruccién Do Until ActiveCell.Value = “”, indica que las instrucciones entre Do Until y Loop se ejecutarén mientras la celda activa no este vacia y dejardn de ejecutarse cuando se encuentre una celda vacia. La instruccién ActiveCell. Offset(1, 0).Select se mueve una celda debajo de la celda activa. La instruccién Resultado = Resultado + ActiveCell.Value, suma a Resultado el valor que tiene Resultado més el valor de la celda activa. a instruccién ActiveCell.Value = Resultado, asigna el valor de la variable Resultado a la celda activa que sera dos celdas debajo de la celda que tiene el ultimo valor. Las instrucciones que siguen a Loop se ejecutan hasta que se encuentra una celda vacia. For..Next Ejecuta un bloque de instrucciones un niimero fijo de veces, establecido por un rango de valores y controlado por un contador. Sintaxis: For Contador = Inicio To Fin [Step Incremento] cédigo [exit For) cédigo Next 222| Ediciones Fares aE comienza un bu cuando co! cle For.Next, Vital Baste evalia Incl, Flay step. (sta es la unica ver que evali9 estos valores, Despuss aslana Iniclo a Contador. Antes 6 de ojecutar ef bloque de Insteuceiones, compara dor con Fin, Si Contadc es bloque de instrucciones, Compara Con oi antl Se aha g ae Yor a el valor de Fin fo menor, step. aeyatvo, et bucle For termina © rol se pasa a la Instruecion que sigue a la Instruccién Next, de lo conteario se ejecuta el bloque de instrucclones, A (aria See vt ra cada ae BA encuentra la instruecién Next, incrementa Contador en el valor indicado en step vwelve a a Instruccién For. Compara de nuevo Contador con Fin y otra ver, elecuta el bloque o sale det bucle, segin el resultado. Este proceso continiia hasta que Contadar sobrepasa Fin o se encuentra una instruccién Exit For. Elbucle no se detiene hasta que Contador ha sobrepasado Fin, Si Contador es igual a Fin, el bucle continua. La comparacién que determina si se ejecuta el bloque es Contador <= Fin si step es positivo y Contador >= Fin si step es negativo. Cambiar el valor de Contador mientras se esta dentro de un bucle puede dificultar la lectura y la depuracion del cédigo, Cambiar el valor de Inicio, Fin 0 step no afecta a los valores de iteracién especificados cuando se entré en el bucle por primera vez. Ejemplo: Construir un programa que despliegue en la columna A de una hoja los nmeros del 1 al 9 y devuelva Ia suma de todos los nimeros en una celda de por medio del ultimo valor, para desarrollar este ejemplo agregar una nueva hoj al libro Estructuras que se cred con el ema de Do While e insertar los siguientes botones: For Next amo _| Ediciones Fares | 223 ———.__Laboratorio de informatica Escri el Cédigo de los Botones ® Codigo del botén Do While. © ElCiclo Do While, se ejecuta mientras el valor de la variable desde sea menor de 10, en el momento que llega a 10 finaliza el ciclo. @ _Eneste ejemplo se declara la variable desde que es la variable que contendr el valor de todo el recorrido del ciclo. @ Se declara la variable suma fuera del ciclo Do While, esta variable acumulard la suma de todos los valores que contenga la variable desde. @ Dentro del ciclo Do While se ejecuta las siguientes instrucciones: . Colls(desde, 1).Value = desde: Esta instruccién agrega a la celda activa el valor de la variable desde. Suma = suma + desde: Acumula el valor de la suma de todos los valores que contiene fa variable desde durante el recorrido del ciclo. © desde jesde + 1: Aumenta en uno la variable desde. @ Una ver finalizado el ciclo Do While se ejecuta la instruccién que sigue a Loop, en este ejemplola instruccién (Cells(desde + 1, 1) Value = suma) muestra en una celda de por medio del ultimo valor, el valor que contenga la variable suma. Ejemplo de ejecucién del ciclo Do While. Do While desde < 10 jo While iif ee eee SEE Sh [|e eet ane mS Sym 1g Loop ake otén BtnDoUntit TES Soe CAD RCT ETE Dim desde As Thveuer Gaede = 1 Din sume Ap Integer Do Until desde =" 10 Celie(deade, 1) value = ange sn turn + tee jade © desde * Loop , Celle desde + 2, 2) .Value * sua @ Elciclo Do Until se ejecuta mientras la variable desde no sea igual a diez. @ Las demés funciones son iguales al ciclo Do While. Botén BtnForNext vate Sup GraFonion chert) Dis guna ae Invece? For deage = i To 9 Step 2 Celis(desde, 2) value = deode sone = sure + desde exe Celistdesde +2, 2).valve = una ene sub @ Elciclo For Next a diferen desde de manera manual ya q incrementaré (Step 1). syales al ciclo Do While. @ Las demés funciones so Botdn BtnLimpiar Bub cndLimpiar click) Private aia") «clear Range ("AL", End Sub Resultados 0 While 0 Until For Next Umplar cia de los ciclo Do While y Do Until, no necesits ue tiene implicito dénde empieza, donde ter a incrementar Ia variable ‘mina (1 to 8) y como se 225 Ediciones Fares Programacién Completa del proyecto “Prueba de Bucles” Private Sub CmddoUtl Click!) Dim desde As Integer desde =1 Dim suma As Integer Do Until desde = 10, Cells{desde, 1).value = desde uma + desde desde = desde +1 Loop Colisidesde + 2, 1)Valu End Sub Private Sub CmaDoWnile_Click() Dim desde As Integer desde =1 Dim suma As Integer Do While desde < 10 Colis(desde, 1). Value = desde suma = suma + desde desde = desde +1 Loop Cells(desde + 1, 1)Valu End Sub Private Sub CmdForNext_Clicki) Dim suma As Integer desde =1 For desd Colisidesde, 1)Value = desde suma = suma + desde Next Celis(desde + 1, 1}Value = suma End Sub To9 step 1 Private Sub CmdLimpiar_Click() Rangel’Al", “A12") Clear End Sub 226 | feiciones Fares Foren EaChnnNext «similar 2 For...Next con la di s diferencia que se repite para cada elemento o subindice de una matriz 0 coleccién 0 para un niimero de veces especificado, sintaxis: for Each VElementos In coleccién Bloque de instr a ucciones a ser ejecutadas por cada valor de la variable VElementos Next (VElementos) para cada inteaccién del bucle la variable VElementos seré configurada con uno de los elementos c= ia coleccién, antes de que el bloque de instrucciones sea ejecutado. Cuando todos los elementos del coleccién 0 matriz han sido asignados a VElementos, el bucle For..£ach termina Y el control pas2 2/2 instrucci6n siguiente a Next. cciones para cada elemento d= Utiice un bucle For Each...Next cuando desee repetir un conjunto de instruc una coleccién o matriz. gjemplo: Sumar todos los valores de un rango de celdas. para realizar este ejercicio al libro Estructuras apregarle una nueva hoja y llenarla con la siguiente informacion: Ediciones Fares | 227 & - a! a Laboratorio de Informit Programacién del Botén For Each Next rivet Sub Grdvarkecnivent_c1sek Din Cell As Range Din Suna As Integer Dim Cantidad Ae Inte’ Dim Prom As Long er For Each Celi In Range ("AL:De") Celle Sunal = Sunai + Cel1.Volue Cantidad = Centidad + 2 Next cell Pron = Suna / Cantidad tingertar el p: Range ("A10") Select . Retivecel2.Velue = "Pronedio’ Range ("510") -Select Retivecell.Velue = Prom Range ("AI") Select Retivecell.Value = “Suna” Range ("B11") Select Renge ("Al2") Select AetiveCell.Value = "Contes" Range ("B12") Select Retivecell.Value = Cantidad Jena Sub @ La instruccién For Each Cell In Range(“A1:D8") Cells, indica que para cada celda del rango Al:08 ejecutar el bloque. Sunai = Sumal + Cell.Value Cantidad = Cantidad +1 @ Cuando se llega a la ultima celda del rango, automaticamente se hace el promedio. Prom = Sunai / Cantidad @ Se imprimen los resultados en las celdas B10, B11 y B12. Setar el promedio Range ("A10") .Select AetiveCell.Value = "Pronedion Renge ("B10") .Select ActiveCell.Value = Prom tar la suna Range ("Ali") Select AetiveCell.Value = "Suna" Range ("B11") Select AetiveCell.Value = Sumai| Range ("Al2") .Select ActiveCell.Velue = "Conteo" Range ("B12") .Select ActaveCell Value = Centided 228 | Ediciones Fares gesutados Para realizar el ejercicio anterior también se puede utilizar la propiedad CurrentRegion, esta propiedad ‘os permite seleccionar un rango dénde sus limites no se conocen ya que CurrentRegion devuelve el rango que rodea a una celda seleccionada Para completar el ejercicio, agregar una nueva hoja al libro Estructuras y lenarla con la siguiente informacion: syseagyy Ediciones Fares | 299 aes aoe 1_= . o =| oS cone “ . 3s 100} « : > 3 4 = = 5 5 eine 3 ae S = aa —reennee_ = : ‘Si damos ci en el Boten For Each Nest estamos ubicados en cualquier celda ede tango, los esloulos se reslizarin sobre el mimo, Controles de Seleccion ListBox |G tntbo» Muestra una lista de elementos desde la cual el usuario puede seleccionar uno o ms. En caso que el numero de elementos supere el numero que puede mostrarse, se agregard automaticamente una barra de desplazamiento al control ListBox. ComboBox |! Combina las caracteristicas de un control TextBox y un control ListBox. Permite a los usuari informacion en la parte del cuadro de texto 0 seleccionar un elemento del cuadro de lista del control. Un ComboBex ests normalmente sin desplegar y se despliega en el momento que el usuario hace clic sobre la flecha que se presents en su parte derecha del control ComboBox. Al desplegarse muestra la lista con todos sus elementos. Cuando da cic sobre un elemento de la lista de un ComboBox, este pasa ala parte TextBox del combo y lista se repliega nuevemente, Propiedades y Métodos de ListBox y ComboBox Ei ListBox y ComboBox Denen list de métodos pernculares que sdlo se pueden aplicar en tiempo de eyecusion. & eRRREDFRRD * ro = a additem: Agrega un element i m1 x Adler ‘0a la lista del control, Ejemplo: a én “ plo: ListBox.Additem ("Fares"), Co! . @ Clear: Quita todos los elementos de un ListBox 0 Comb ‘omboBox. Controles Contenedores saya tenemos dos tipos de contrles: @ No Contenedores: Son aquellos control les que no pueden conter i gjemplo: CommandButtom, TextBox, et. sner a otros dentro del mismo. Sear Matownin SS] rc Control TextBox se puede EI Control TextBox se pued ‘Al mover el bot6n el TextBox no colocar sobre el control ‘se mueve con él, se mantiene en commandButton, pero no ta misma posed, dentro de 6 & Contenedores: Son aquellos controles que pueden contener 2 otros dentro del mismo. Un contenedor también puede contener a otro contenedor Ejemplo: el Formulario y el Marco (Frame). Marco | sun control que se puede usar para contencr g otros controles dentro de él yasi organizar la informacion dentro del formulario, nero un marco (frame), sobre este un textobox y un CommandButton. Sobre un formulario, dibujar PAN TextBo jado dentro del contenedor, e control queda alo} ; moviendo también ef contenido de este, Los « edor, es Cuando un contro! se inserta dentro de un conte? dor, est de tat forma que si movemos cont enedor, estaremes para: renedores se pueden ub © < OptionBUtton 6 par controle: jencia de la aplicacion- Mevorar 12 ap Ediciones Fares | 231 Laboratorio de informs © Optimizar el espacio dentro de un formulario. © Separar controles para manipulacion masiva a través de cOdiB0- Pagina Maltiple (MultiPage) [1] Permite agrupar y optimizar el espacio del formulari, ya que muestra al usuario una colecci6n elacionads de pestafias que pueden contener controles y componentes. Ejemplo: Como se puede observar en la imagen anterior un MultiPage puede estar contenido en el formulario o dentro de otro contenedor como: Marco 0 MultiPage. mente, esté compuesto por dos paginas (page), para agregar una nueva pagina, Un MultiPage it realizar las siguientes instrucciones: 1. Dar clic derecho de! mouse sobre el nombre de una de las paginas. a : Dar clic derecho del mouse aqui 2. Dar clic en Nueva pagina. Se inserta una nueva pagina. Poaed [Popes Pom] 232 | Ediciones Fares _ ea glusuario puede cambiar el objeto Page actual, haciendo clic en una de las fichas del control 0 mediante programacion propiedades y Métodos del MultiPage clobjeto MultiPage actual, utiliza una de las propiedades siguientes, para obtener o seleccionar una pagina specifica: 1, Value: Obtiene o establece el indice de la pagina de fichas seleccionada actualmente. Ejemplo: Valorindice = MultiPage] Value MultiPage1 Value = Valorindice Valorindice, representa un nimero correspondiente al indice de cada pagina, empezando por el numero cero (0) que representa la primera pagina. Para cambiar el nombre de cada pagina, seleccionar la ficha y en la propiedad caption, escribir el nombre que desea para la ficha 0 pagina. Ejemplo: 1. Crear un libro de Excel con el nombre de Contenedores. 2. Presionar Alt + F11. 3. Insertar un Userform. 4. Agregar un MultiplePage y modificar las propiedades necesarias para obtener el siguiente disefio, Ficha Cuadro de Lista (ListBox) Aqui se explica el uso del control Cuadro de Lista. UstBout ‘Opamaer &ps00 TextBox1 ‘Command8utton] CommandButton? Ediciones Fares | 233 Laboratorio de Informatica Propiedades Marco Caption Prueba del Control ListBox Label Caption ‘Nombre del Alumno UstBoxt Name ListaDeAlumnos TextBoxi Name Tawombre CommandButtont Name BtnAfiadir Caption Afiadir ‘CommandButton2, Name Btntimpiar Caption Limpiar Label2 Caption Dato Seleccionado TextBox2 Name, TxtSeleccion Programacién Botén Afiadir Al dar clic en el botén Afjadir, se agregard el texto escrito en el TextBox! al ListBox. Private Sub BtnAAadir_Click() ListaDeAlumnos.Addltem (TxtNombreText) ‘Agrega el nombre al ListBox. ‘TetNombresText="" _‘Limpia el TextBox TxtNombre. End Sub Botén Limpiar Este bot6n se utiliza para limpiar el TextBox (TxtSeleccion) y el ListBox. Private Sub BtnLimpiar_Click() ListaDeAlumnos.Clear _“Limpia el ListBox. TetSeleccion Text = “* End Sub Mostrar o Borrar un Dato de Ia Lista De la lista de eventos que tiene el ListBox se programa el evento KeyDown (Se activa cuando se presion una tecla) con el propésito que al presionar la tecla Delete(Supr) se borre el Item(Nombre del alumno) seleccionado y el evento Change (Se activa en el momento que se mueve a un elemento de la lista) con el propésito que al dar clic en un nombre de la lista, este se muestre en el TextBox TxtSeleccion. 234 | Ediciones Fares ‘rat So ste Anos KeyDownOl eye hs ons tom WKeyCodewalue = 46 Then “seprsiona lacie taney LUstaDeAlumnos.Removettem (UstaDeAlumnosLstndex) “borar et cna cots pret Shit Re teteaeed | item seieceionades | Private Sub ListaDeAlumnos_Change() If ListaDeAlumnos.tistCount <> 0 Then TatSeleccion Text = ListaDeAlumnos Value Edit End Sub, | resultados Ficha List Box rey et [etter | on | rte Jantar [oma | Aldar clic en el boten Limpiar se eliminan todos los valores de lalista, AL dar clic en un nombre de la lista este se muestra en el TextBox. Ficha ComboBox ‘Aqui se explica el uso del botén ComboBox y RadioButton. a ‘Optinvzar Espacio GroupBoxt Label? TextBox Label2 TextBox? Label3 Labels eter| Centalior (Qechin RadioButtont RadioButton? Radiotuttons Radioduttond Button} Button? Button3 Ediciones Fares boride ntormsncan Propiedades Dee eae] Label Caption Numerol TextBox Name Tat Label2 Caption Numero2 TextBox2 Name TaN? Label Caption Resultado ‘Name UbiResultado Labels Capron vice BackColor ‘&H1800000148 Borderstyle 1 fmBacksStyleOpaque ‘CommandButtont Name BtnCalcular Caption Calcular ‘CommandButton? Name BintimpSuma Caption Limpiar ‘CommandButton3 Name BinSalir Caption Salir Marco Caption Operaciones: OptionButtond Name RoSuma Caption Suma OptionButton2 Name RbResta Caption Resta OptionButton3 Name RbMultiplicacion Caption Multiplicacién ‘OptionButtond Name RoDivision Caption Division ComboBoxt Name ComboOperaciones Al ComboBox1 también se le debe agregar la lista de opciones (Suma, Resta, Multiplicacién y Division), para agregar la lista se puede realizar de diferentes form: © Esc iendo la lista en las celdas. 1+ Escribir una lista. 236 | Ediciones Fares 2. Escribir en la propiedad RowSourse an (Origen de ta fila), el rango de dénde se obtendrén los Faccen a in ferme) ‘Agul escribir “Wojal!AL:A4*, a peewee the ] SS ALE} Jecuter el formulario, podremos observar los datos en el ComboBox. Escribiendo Cédigo en el Evento Initialize del formulario. 1. Dar clic derecho del mouse sobre el formulario. 2+ Dar clic en Ver Codigo. 3+ Buscar el evento Initialize, Teron Dar clic aqui para buscar el evento Laboratorio de Informatica I! el cédigo Private Sub UserForm. ‘ComboOperaciones.Additem ("Suma") ‘ComboOperaciones.Additem ("Resta") ComboOperaciones.Additem ("Multiplicacion”) ComboOperaciones.Addltem (“Division”) End Sub Programacién Programar los Botones de Opcién (OptionButton) y e! ComboBox Se programa en el evento clic de los botones OptionButton con el propésito que al dar clic en suma; se activa suma en el ComboBox y que al seleccionar Division de lalista del ComboBox se active el OptionButton Divisién y asi sucesivamente. Para seleccionar un objeto de la lista del ComboBox se debe hacer referencia a través de su indice (0 para el primer Item de la lista, 1 para el segundo Item, etc.), haciendo uso de la propiedad Listindex (Obtiene o : ComboOperaciones. establece el indice que especifica el elemento seleccionado actualmente), Ejempl Listindex= 2, selecciona el Item Multiplicacién, Private Sub RbSuma_Click() ComboOperaciones Listindex = 0 End Sub Private Sub RbResta_Click() ComboOperaciones.ustindex = 1 End Sub Private Sub RbMultiplicacion_Click|) ComboOperaciones.ListIndex = End Sub Private Sub RbDivision_Click() ComboOperaciones listindex = 3 End Sub Se programa en el evento Changed (Tiene lugar cuando el valor de la propiedad ‘ComboBox y se activa cada OptionButton a través de la propiedad Value (Obtiene o establece un valor ave indica si el OptionButton estd activado) del OptionButton, 238 | Ediciones Fares Prvate Sub Combodperacones_Chongal Select Case Cor = . Case CombeOperaciones Ustndes 280 ‘Sise selecciona el indice 0 suma) se activa ReSumavValue = True ‘el RadioButtom RbSuma Case RbResta Value = True Case2 RoMultipicacionValue = True Case3 RoDivision Value = End Select End Sub Programar el Botén Calcular Para poder realizar cada operacién se verifica el estado de la propiedad Value de cada OptionButton y asi asignar a la variable VResul la operacién que corresponda. ss Ediciones Fares | 239 Private Sub BtnCalcular_Clck() Dim Vni As Double “Recoge el primer valor introducido por el usuario. Dim Vn2.As Double ‘Recoge el segundo valor introducido por el usuario vn Val(TtN Text) Vn2 = Val(TxtN2.Text) im VResul As Double IfRbsuma\Value = True Then ‘Se verifca siesta actvado RbSuma, se asigna \VResul=Vnt+Vn2 ‘a VResul la suma de Vnt + Vn. Elself RbResta Value = True Then ‘Se verifica si esté activado RbResta y se asigna ‘a VResul Ia testa de Vo} + Ved. "Se verifica siesta activado RbMultiplicacion, se asigna \VResul = Vind -Vn2 Elself AbMultiplicacion Value = True Then VResul= Vni * v2. ‘a VResul la multiplicacion de Val * Vn2. Elself RBDivision Value = True Then vse verifcasiel valor de N2 es distinto de 0 porque a divin por cero nose puede realizar “si vn2 es distinto de Ose asigna a “se verifica si esté actwvado RbDivision. tfvn2 <> 0Then VResul=\Vni/Vn2._‘VResul la dvisin de Vn} /Vn2. tye ‘Sielvalor de Vn2 es Ose muestra et mensaje “No se puede dvdr por O°. ‘MsgBox ("No se puede divigir por 0°) endif Ee “Sino se seleccioné ninguna opcion (Suma, “pape seleccionar una opcien! 1 opcisr utsgBox ("Dede selecrionar uns endif UstResuttade Caption = VResU! festa, Multiplicacin, Division) se muestra el mensaje Programar Botén Limpiar y Botén Salir Private Sub Bentimpsuma_clickl) TaANLText TaNZTet LbiResultado.Caption =" End Sub Private Sub BtnSalir_Clickl) end End Sub Resultados de la Ficha ComboBox Si se da clic en resta, también se ‘muestra resta en el ComboBox. oo Sidela lista de opciones del Comboboxse selecciona division, se activa el OptiomButton que representa la division, Ficha Check Box ‘Aqui se explica el uso del checkbox y como guardar los cambios seleccionados por el cliente, utiizando Settings (funcién que permite guardar en el registro de windows), para recordar las configuraciones propuestas en el sistema. “Unidad IV CommandButtont { Realizar actividad BinActividad Ediciones Fares Estilo Negrita ChikNegrita Cursiva TT thicursiva | ea | Subrayado____| tame ___| chkSubrayado enon Tamafio30_| Name ‘ChikTamafio, Programacién Ficha Check Box Sotdn Realizar Actividod Penate Sob Benacowiaad_ Cee) Dm negrea As Sociean Den curva As Bootes Boolesn “Siestd actvada la negrita se 2a a! texto Ediciones Fares. Ediciones Fares | 241 atest de noms rue Then ‘Si est activada la negrita se TW? chkSubrayado.Valu ‘aplica subrayado al texto Ediciones Fares. rue Then ‘Siestd activada la negrita se ‘Aplicar los estilos seleccionados, UblFares Font Size = Tamafio LblFares.Font.italic = cusiva LUblFares Font.Bold = negrita UbiFares Font Underline = Subrayado End Sub Resultados Ediciones Fares Ejemplo Crear un formulario que permita agregar y buscar informacién en la hoja de célculo y mostrarla en el formulario; para la entrada de datos crear un libro dar el nombre de DatosP a la Hoja, debe verse como la siguiente image : Ministerio ISHAH : Datos Personales coe nee Teldfone Cellar Comeotiecuinio Secongiegs lela Cbnernaianes 242 sg tormutario debe tener el siguiente diseAo: Programacion Dim FoundRegistro As Boolean Dim GuardarModificar As Boolean Private Function BuscarCodigo(Cod As Long) As Long, Dim fla As Long, ‘obtener el numero de filas utlizadas Function, CountA(Rangel ay) fila = Application. Worksheet i TxtCodigo.Text = “* Then BuscarCodigo = fila FoundRegistro = False Exit Function End it For i= 1 To fila Cells(i, 2}Nalue = TxtCod'er BuscarCodigo =i FoundRegistro = Tue Exit Function joText Then Else BuscarCodigo = fila FoundRegistro = False Engi Next End Function Ediciones Fares 243 Laboratorio de Informatica ‘Sub LimpiarDatost) TrtCodigo Test = “* TetNombre Tex TatTelefono Text = TrtCelularText = “" Tot mailText TatiglesiacTex TetObservaciones Text =" ResulBusqueda Clear CChiCongrega.value = False End Sub Sut BloquearTextbox(8 As Boolean) Taombre Locked «8 | TieletonaLocted = 8 | Ticeblartocked=B Titémal Locked = | ‘iaobseraions Loc cnicongepa Locted = 8 Ichicongrega sue = Tue Then Tillesia. Locked = Foie | the Tella Locked = Tue ena fraud Sub Boquearotones(0 A Boolean 2 As Boolean) CmdNuevo Enable CmaMsitiarEnabed= 8 Cma€iinarEnsbled = 8 cmaSalegnabied = 8 CrndGuaedacEnsled= 2 CmdcancelaEnabled= 2 fd Sub private Sub ChkCongrega_Clck() W ChkCongrega.Value = True Then Tutiglesia.Locked = False ‘Tatiglesia SetFocus Else Tatiglesia Locked = True Endif nd Sub 244 | Ediciones Fares Favate Sub CmdBuscar_Click() on Error GoTo Errores me ResulBusqueda Clear aange("21").CurrentRegion Rows.Count Fori=4 To Filas i case(Cellsti,c).0ffset(0, 1).Value) Like“ Me.ResulBusqueda Additem Celis(,c) Me.ResulBusqueda List(Me ResulBusqueda.listCount - 1, 1) = Cells(i, €Offset(0, 1) Ist{Me ResulBusque t{Me ResulBusqueda ListCount - 1, 2) = Cells(i c).Offset(0, 2) Cells c}.0ffset(0, 3) & LCase(MeTxtBuscartext) & “*" Then ‘Me-ResulBusqued: Me.ResulBusqueda List(Me-ResulBusqueda.ListCount - 1,3) Else endif Next i exit Sub Errores: MsgBox end Sub Jot xclamation, “EXCELeINFO" “No se pudo completar la busqueda", private Sub CmdCancelar_Click() GuardarModificar = False FoundRegistro = False BloquearTextBox (True) Call BloquearBotones(True, False) cmdBuscarnabled = True End Sub Private Sub Cmdéliminar_click() im Vfila As Long Vita = auscarCodigolvalatcodigo Te) it FoundRegistro = True Then "verifica shel codigo yo existe Hs Activate ae 1 registro?" vbYesNo # vbQuestion, “EXCELEINFO") pregunta = Magdox("Estd seeuro 0° eliminar el if Peegunta <> vbNo Then | | | i ‘activeCell.EntireRow.Delete End if saw Else ‘Si el cédigo no existe centonces se agren2 rel ‘MsgBox (”No Hay reelstros para eliminat”) End _ Ediciones Fares || 245 - 246 bottle noms Private Sub CmdGuardar_Click() Dim Vila As tong. Villa = BuscarCodigo(val(TxtCodigo ext) GuardarModificar = True Then |t FoundRegistro = True Then ‘Verifia siel codigo ya existe MsgBox ("Este codigo ya esta registrado") Else ‘Si el cédigo no existe entonces se agrega el registro Vila = vila +2 Celis{vila, 1) Value = TxtCodigo.Text Cells{vila, 2} Value = TxtNombre Text Cells{vila, 3} Value = TxtTelefono Text Collsvila, 4) Value = TtCelularText Cells, 5} Value = TxtEmailText Cellsviila,6}Value = ChiCongrega Value Collsvila, 7} Value = Txtiglesia Text Colisi vila, 8) Value = TxtObservaciones Text MsgBox ("Registro guardado con exto") Endif Else M FoundRegistro = False Then ‘Verifica sel codigo no existe (MsgBox ("Este codigo no esta registrado") Else ‘Si el cbcligo existe entonces se modifica el registro Cells(Vfla, 1}Value = TstCodiga.Text Cells(Vfla, 2}Value = TxtNombre Text Cells(Vfla, 3)Value = TatTelefono Text Cells(Vila, )alue = TetCelularText Cells(vfila, $}Value = TatEmailText Cells(vila, Value = ChkCongrega Value Cellsvila, 7}Value = Tetlglesia Text Cells(Vfila, 8,Value = TatObservaciones Text MsgBox (“Registro modificado con exito") Endit endif GuardarModificar = False FoundRegistro= False BloquearTextBox (True) Call BloquearBotones(True, False) Ediciones Fares private Sub CmdModificar_Click{) i TatNombre Text =" Then Exit sub Call BloquearTextBox{False) Call BloquearBotones(False, True} GuardarModificar = False (cmdBuscar Enabler end Sub Private Sub CmdNuevo_Click() Call LimpiarDatos ‘Limpia todos os TextBox Dim VMaximo As Long Viaximo = BuscarCodigo(ValTstCodgo Text) ‘Obtener el numero de iss if vMasimo > 3 Then If cels{vMaximo,1}Value <> Empty Then TitCodigo alu = ValCels{vMaximo, 1a) +1 End if ke TitCodigo Value = tf Call BloquearTextBox(False) Call BloquearBotones(False, True) 10000000 GuardarModificar = True CmdBuscar-Enabled = False End Sub Private Sub CmdSalir_click() Unioad Me End Sub Private Sub ResulBusqueda_click() Range(“a2").Activate Cuenta = Me ResulBusqueda.ListCount Set Rango = Range("A1").Currentfegion Fori=0To Cuenta-1 If Me.ResulBusqueds Selectedti) Then valor = VallMe.ResulBusqueda.List) Rango.Find(What:=valr, Lookat:=xWhole, After:=ActveCel) Activate TetCodigo Text = ActiveCell. Cells, 1)Value TetNombre Text = ActiveCell.Cells(2, 2}Valve TatTelefono Text = ActiveCell Cells(1, 3). value TetCelulartext = ActiveCell.Cels(1, 4) Value TutEmailText = ActiveCell Cells(2, 5)alue Trtiglesia Text = ActiveCellCells(2, 7)value TetObservaciones.Text = ActiveCell.Cells(2, 8) Value ‘chkcongeega = ActiveCell.Cells1, 6) Value Endif Nexti End Sub Ediciones Fares 247 248, Laboratorio de informatica i Private Sub UserForm Initialize) GuardarModiticar = False FoundRegist BloquearTextdox (True) Call BloquearBotones(True, False) With ResulBusqueda ColumnCount ColumaWidths = "60 pt;150 pt:90 pt;90 pt” End With, End Sub Ministerio ISHAH Datos Personales Gaim ushneeaconeiresoysneVUsOAceko Patra eveas Sum armensaneyepnancen FASO Je mon Sabena agar Dats Bena eas eves HAM con PRR tee [Se Vee SR on | Graficos Es la representacién gréfica de los datos de una hoja de calculo y permite la interpretacién répida de los mismos. La utilizacién de graficos hace mas sencilla e inmediata la interpretacién de los datos, ya que 8 mayoria de veces, un grafico nos dice mucho mas que una serie de datos clasificados por fila 0 columns Ver la informacién plasmada de una tabla en un grafico permite tomar una mejor idea de los datos que S® han recolectado, por ejemplo: se puede observar con mayor facilidad si existe un aumento o disminucion en nuestras ventas o si se han obtenido mayores uti 8 lades en las ventas con respecto a aos anterior @ incluso se pueden ver datos estadisticos sobre cierta informacion (cudntos alumnos son masculinos ¥ cuantos son femeninos). Ediciones Fares a sahcos son creados sobre el - ere Blano cartesiano, dénde frec ae Brualesyel ie “Y" 105 valores numéricog “err os erdficos en Excel pueden ser creados como = : Elerse, Gréfico Incrustado: El grafico se crea en la misma hoja donde estén los datos, 4 Hoja de Grafico: El gréfico se crea en una nueva hoja independiente para efectos de préctica, crear un libro de Micros oft Excel, guardarlo aoe teae ighoja! con la siguiente informacién: “ee” Para crear el grafico, realizar las siguientes instrucciones: 1. Seleccionar el rango de celdas que formara parte del grafico, en nuestro ejemplo seleccionar desde el rango B7:C10. 2. En el grupo Graficos de la cinta Insertar, dar clic en el tipo de gréfico que mejor represente su informacién, en nuestro ejemplo dar clic en Insertar grafico de columnas. i? Graficos a Grif recomendados we ‘- dinamico~ Graficos & Ediciones Fares | 249 Laboratorio de Informatica i 3. Seleccionar un tipo de grafico de columnas, segun su criterio. 70 [irae] ih afl WAH elemplo, dar cic {gunna en 0 aqui Resultado Para cambiar el titulo del grafico, realizar las siguientes instrucciones: 1 Dar doble clic en Titulo del Grafico. Tulo de griico Dar doble clic aqi 2. Escribir el titulo que representa al grafico, en nuestro ejemplo escribir “Sueldos por Departamento”. Sueldos por Departamento 250 | Ediciones Fares impo: Ediciones Fares quiere represent ar grafica ny soi2, 2013 ¥ 2014; tomando en cuent Brdficamente los salarios pagados durante tor af04 a la siguiente informacién: © 7 fl | Ediciones Fares Sueldos por Departamento s «| Depar ‘ rismento|_afowant | Ao +) (ademas 8 | fleece 3130] sre 2) aio, 0 + fr aac] ses pyalaelaboracion del ejemplo, realizar las siguientes instruciones: 1, Seleccionar el rango de celdas 62:E10. 2. Enel grupo Graficos de la cinta Insertar, dar clic en el tipo de grafico ave mejor represente su informacion, en nuestro ejemplo dar clic en Insertar grafico de columnas. Dar clic aqui BP mS- of “ Graficos e Grafico recomendados *D” E dinémico™ Graficos 5 su criterio. 3. Seleccionar un tipo de eréfico de columnas, segun st Columna en 2-D (pA AR wah 18 18 ny [es ayaficos de columns Ediciones Fares | 253, Resultado ‘Sueldos por Departamento | | f2A%02012 gAfo2013 nAfo2016 Partes de un Grafico iphalo uel Lineas de division Bratico Area del grafico Sueldds por Departamento Serie de datos ea Titulo del eje horizontal Titulo del eje Leyenda vertical Para activar o desactivar las partes del gréfico realizar las siguientes instrucciones: 1. Seleccionar el grafico. 2. Dar clic en elementos del gréfico el cual se muestra al lado derecho del mismo. Dar clic aqui 252 | Ediciones Fares actvar 1s elementos que dese (2 thas dees [El Mode gitco EB) taquetn de dior C Yoende dre, nes dela cunerca i beyenaa Validacién de Datos squema sselproceso de confirmar que los datos introducidos son compatibles com las restricciones de us deleonjunto de datos 0 con las reglas establecidas para la lista de datos, Lavalidacién de datos disminuy= sesgo de que los datos ingresados sean incorrectos o que no haya introducido todos ios datos necesarios, \aldar datos es una buena practica que reduce los errores al momento de introducr informacion. Lavalidacién de datos se usa para controlar el tipo de datos 0 los valores que Jos usuarios pueden escribir enuna celda. Por ejemplo, es posible que desee restringi la entrada de da ‘ciones con una lista o asegurarse de que solo st s es sumamente util cuando desea compartir os que se escriban en él sean exactos y coherentes. tos a un intervalo determinaco de fechas, limitar las op e escriben nuimeros enteros sositvos. La validacién de dato: dela organizacién y desea que los dat un libro con otros miembros listas Dentro de las Celdas Excel, muchas veces enco! ntramos informacién que puede ser llenada en no o femenino, el estado civil puede ser soltero, a una opcién de lista en la celda que permits Cuando creamos tablas en forma repetida, por ejemplo: El (2sado, divorciado 0 viudo; es ene seleccionar de una lista un dato en IVE; género puede ser mascull stos casos que se necesit ar de escribir repetidas veces el mismo dato, pico, crear una hoja con et nombre de clientes en el archivo Para efectos de practicas del presente t64 eniendo el siguiente disefio: Facturacién que trabajamos en macros cont of c : pireccion Teletono sexo Estado Cut! Ediciones Fares, 253 Laboratono de tnfornatica tt Para crear listas en las celdas, really a siguientes instruccione’s jesea crear la lista, en NUEStTO elemply 1. Seleccionar et rango o ubicar el cursor en ta celda que des o empl seleccionar el rango B2:070, que corresponde al campo 5°70 2. Enla ficha Datos, dar clic en Validacién de datos. ee a home te Pe I a aS 3. Dar clic en Validacién de datos. Tz Rodearcomum eee dtes 20 s_ sonar cuctes de valdvcen 4, Enla ficha Configuracién del cuadro de dilogo, realizar las instrucciones que se muestran en \a imagen: as [seo Elegir Lista Br Berens mene Escribir “F*, "M" rat fe) iomixe 2 Yeley viata (lors Ramos ety Marner raters Aguiar 254 | Ediciones Fares Unidad 1V_ sigar et r0neo de Celdas C2:C20 corres ee Pondiente al campo Estado Civil, realizando las siguientes _rucsiones: 1. Eni fiche Datos, dar clic en Validacién de datos 2. Dar clic en Validacién de datos. 3. Enla ficha Configuracién de! cuadro de didlogo, realizar las instrucciones que se muestran en la imagen’ 4. Dar clic en el boton Aceptar, abtenemos el siguiente resultado: ee Sera Tanke OW Drecndn Teton —_ tr sone ee 5 Cassca(s) 3 neues F Drernasols 2 Ben uarice: arora Alar Ediciones Fares | 255 —_laboratoio de norma Autoevaluacion # 4 Tipo Respuesta Breve presentan a continuacién: Instrucciones: Conteste en forma clara y ordenada las preguntas que se 1. éPara qué se utilizan las validaciones de datos? 2. éCudl es la utilidad de! control ChecBox? éQué diferencia existe entre un control contenedor y un control que no es contenedor? 4, éPara qué se utilizan los graficos en Excel? 5, ¢Dénde se encuentra la opcién de Subtotales? 6. éCuales son las estructuras de control? Ediciones Fares 258 Informatica Tipo Préctico Instrucciones: Realice cada uno de Ios ejercicios que se le muestran a continuacién: 1. Crear una aplicacién que pueda realizar las operaciones (sumar, restar, multipicar y dividi) y el resultado de cada operacidn sea almacenado en una hoja de cAlculo y mostrado en un ListBoy, 2. Crear una aplicacién recorra todos los valores de una hoja de céleulo y muestre en la celda contigua si es par o impar. 3. Comercial Fares desea una aplicacién que le permita llevar el inventario de su negocio. Usted de crear una aplicacién que permita cargar el inventario, rebajar productos del inventario, llevar un control de las entradas y salidas de cada producto; los resultados deben guardarse en un libro de Excel. 4, Tomando en cuenta la siguiente tabla, realizar las operaciones: z = z 7 t impren Iugiesos —_|Gantos _[eeneticion_ 1 Kestruntadores —[esaador | 23945550] _656550.0]_sto1a 200 3 AosTnunfagores [res $2158.95 0] 55,655.09] 5239123900] 4 LexTHonfadores —uaterata | sessnsen.co 063 06.00]_s570.02200 + ‘Genvoamencana”[Guaterafa | 1231700] $1561. 605.00] _$32731800 6 enrotmencano [Manic $765.30] $78 52.00| $085, 720.0] + ‘Gentvoamersana —|Hondurat | sss 612.0] 69787400) —59207.738.00 « [Gertroameneina [ranci ‘51271, 38400] $7368.00] $956.857.00 «nel Uno Tondurse | stra. — sss.25 00] $0203 234.0) wel (cae sesagsenco) $5097 46.00] $600,170, 1 Nivel une. [Honduras $256,835.00] _ $458,976.00] _$1997,518.00) a. Utilizando Subtotales Agrupados, crear una lista con los subtotales por empresas acumulando las ganancias debajo de la columna de Beneficios, de forma que pueda ver los totales parciales. b. Hacer una copia de los datos, crear filtros automaticos y mostrar solamente los datos de Guatemala. 5. Con el presente cuadro realizar cada actividad que se muestra después del mismo: : FACTURA No. mm Ediciones Fares 10. Crear una aplicacidn que determin’ 11, Construir uns aplicacion que co 12. Crear una aplicacién que pids 13. Escriba una aplica’ ee. ¢_ Agregar una hoje que almai ' ‘cene los datos del cliente y llenarla con 20 4g. Enelcampo “Nombre del Client a "crear uni nla hoje cllentas yuna vexque seen a lista que muestre todos los clientes agregados selecci se piden en Ia factura, ‘one el cliente se mostrardn los demas datos que fe. Agreget una nueva hoja con el nomby re de Re aera egistrosTotales y colocar los campos NFact, ( Enla factura crear subtotal, pane macro que almacene el numero de factura, nombre del cliente, oa y total a pagar en los campos de la tabla RegistrosTotales y hacer que se ejecute desde un objeto. Crear una aplicacién que sume todos los némeros pares entre 1 y 200, los resultados debe mostrarlos una hoja del libro, para realizar esta aplicacién haga uso de: @ Ciclo While @ Ciclo For..Next ar una aplicacién que permita como entrada de dato en un TextBox un numero ente (1 y 12) jemplo: si se escribe un 1 debe devolver Coe y devuelva como resultado el mes al cual corresponde. Ej como resultado “Enero", sies 2 “Febrero” y asi sucesivamente. Crear una aplicacién que convierta de gredos centigrados Fahrenheit. Crear una aplicacién que convierta de metros a centimetros. fe el valor que deberd pagar una persona que va aI cine, dependiendo del nimero de boletos 3 comprar Y el precio. vierta la edad en afios de una persona a meses como datos de entrada el sueldo de una persona ¥ devuelva como resultado: & FOSOVI: es igual al sueldo * 15%. @ pss: siel sueido es mayor de LPs. 71 5. 7,000.00, el seguro es igual igual 2 la suma de FOSOVI* HSS. (000.00 debe pagar 7000 * 3.5%, pero si el sueldo es eldo * 3.5% menos de LP! an © Tota! dedueciones: € @ Sueldo neto: es iguat! gyeldo - total deducciones. 1 sume todos los nimeros Pare entre uno y 100 haciendo uso de: cin aut @ Uncicio while © unciclo FOR Laboratorio de Informatica I 14. Escriba una aplicacién que mediante el uso de un bloque case, asigne a una variable de tipo string denominada StrValor, la representacién en letras del nimero contenido en una variable entera llamada Valor. ‘Asuma que el contenido de Valor esté comprendido entre 1 y 100. Ejemplo: Si el Valor 5, la variable StrValor debe contener “Cincuenta y cinco” 15, Una agencia de alquiler de autos desea una aplicacién que le sirva de apoyo al empleado encargado de atencién al cliente. La empresa cuenta con la siguiente flota de autos: 1 x8 500.00 2 Turismo pequefio 300.00 10 3 Turismo grande 400.00 10 4 Busito 700.00 4 El programa deberd permitir alquilar autos a los clientes, verificando que estos se encuentren disponibles, aceptar las devoluciones de autos y volverlos a colocar como disponibles, listar los ingresos por tipo de auto y listar el ntimero de veces que se ha alquilado cada tipo de auto. 260 | Ediciones Fares

You might also like