Presentacion 2 estructuras de control web renee gonzalez

24
Taller de Macros en EXCEL. VBA Clase N º 2 Estructuras de Control Por: Ing. Reneé González Martínez C.I.: 11.888.960 Prof. Universidad del Zulia Correo: [email protected] Maracaibo, Septiembre 2010

Transcript of Presentacion 2 estructuras de control web renee gonzalez

Page 1: Presentacion 2 estructuras de control web renee gonzalez

Taller de Macros en EXCEL. VBA

Clase N º 2Estructuras de Control

Por: Ing. Reneé González MartínezC.I.: 11.888.960

Prof. Universidad del ZuliaCorreo: [email protected]

Maracaibo, Septiembre 2010

Page 2: Presentacion 2 estructuras de control web renee gonzalez

Objetivos Especificos de la clase

Resolver un problema algoritmico usando el entorno

de VBA para Excel.

Diferenciar las estructuras de control : If, Case, For,

While, a partir de los ejercicios realizados.

Page 3: Presentacion 2 estructuras de control web renee gonzalez

¿Cuál significado le otorga Ud a las sig. palabras?

1. Sub ()

End Sub

2. Private Sub cmdBoton_click()

End Sub

Page 4: Presentacion 2 estructuras de control web renee gonzalez

¿Cuál significado le otorga Ud a las sig. palabras?

3. Cells (2 ,”A” ).Select

Selection.ClearContents

4. Range (Cells(2 ,”A” ), Cells(3 ,”B” )).Select

Selection.ClearContents

5. MsgBox “Hola”

6. Sheets (“ ComoMeLLamo“).Select

Page 5: Presentacion 2 estructuras de control web renee gonzalez

7. ListBox1.ListIndex=0

8. ComboBox1.ListIndex=2

9. Dim X as Integer

Dim Y as Double

Dim Z as String

¿Cuál significado le otorga Ud a las sig. palabras?

Page 6: Presentacion 2 estructuras de control web renee gonzalez

Se requiere una aplicación que realice la conversión de dólares a bsF.

La aplicación debe presentar la opción al usuario de escoger la paridad con la que desea trabajar:

Paridad Oficial 2,2 BsF/$, Paridad Oficial 4,3 BsF/$ y Paridad Paralela a 8,4 BsF/$.

La entrada de la aplicación es cantidad de dinero en Dólares.

Ejemplo de un Requerimiento

Page 7: Presentacion 2 estructuras de control web renee gonzalez

El concepto básico de flujo de control de un programa es un flujo

secuencial, en el cual las instrucciones se siguen en forma lineal, es

decir, se ejecutan de arriba hacia abajo.

Flujo de Control de un Programa

„Ejemplo

Sub Limpiar()

Range(Cells(7, 5), Cells(7, 3)).Select

Selection.ClearContents

End Sub

Page 8: Presentacion 2 estructuras de control web renee gonzalez

Son estructuras que permiten modificar el flujo de ejecución de las

instrucciones de un algoritmo o programa.

Sentencias de control

If - thenIf - then - else

While - wend

Todas las estructuras de control tienen un único punto de entrada

y un único punto de salida

Page 9: Presentacion 2 estructuras de control web renee gonzalez

Estructuras selectivas

Una instrucción selectiva evalúa una condición y de acuerdo al valor

de la condición puede ser ejecutada un grupo de instrucciones o no,

para posteriormente seguir el flujo del programa.

Existen Estructuras Selectivas: Simples, Dobles y Múltiples

Page 10: Presentacion 2 estructuras de control web renee gonzalez

Estructura de selección simple (If – then)

If condición then

Instrucciones 1

End if

Conocida como “Si Condicional Simple”, en la cual, la condición

es una expresión lógica (Verdadero o Falso), se evalúa y de ser

cierta se ejecuta un grupo de instrucciones.

En este caso,

“Instrucciones 1” es ejecutada sólo si la condición es verdadera.

Instrucciones2

Sub Opcion()

If OptDecExp = True ThenSheets("Exponencial").Select

End If

End Sub

Page 11: Presentacion 2 estructuras de control web renee gonzalez

Estructura de selección doble (If – then – else)

Según el cumplimiento de una condición, se ejecuta un grupo de instrucciones

u otro grupo, mutuamente excluyentes.

If condición then

Instrucciones 1

else

Instrucciones 2

End if

La condición es una variable booleana

(lógica). Si esta condición es cierta se

ejecuta Instrucciones1, si no es así, entonces

se ejecuta Instrucciones2.

Instrucciones3

Page 12: Presentacion 2 estructuras de control web renee gonzalez

Estructura de selección doble (If – then – else)

Según el cumplimiento de una condición, se ejecuta un grupo de instrucciones

u otro grupo, mutuamente excluyentes.

If condición then

Instrucciones 1

else

Instrucciones 2

End if

Instrucciones3

Sub prueba()

If variable=10 then

msgbox “Igual”

else

msgbox “Diferente”

End if

End sub

Page 13: Presentacion 2 estructuras de control web renee gonzalez

Estructura de selección múltiple (Select Case)En este caso hay una variable cuyo valor es comparado con todos los

casos presentes, si en algún caso coinciden ambos valores, se

ejecutarán las instrucciones correspondientes a ese caso.

Select Case variable

Case 1:

Acción 1

Case 2:

Acción 2

Case 3:

Acción 3

Case n:

Acción n

End Select

variable

Page 14: Presentacion 2 estructuras de control web renee gonzalez

Estructura de selección múltiple (Select Case)En este caso hay una variable cuyo valor es comparado con todos los

casos presentes, si en algún caso coinciden ambos valores, se

ejecutarán las instrucciones correspondientes a ese caso.

Select Case variable

Case 1:

Acción 1

Case 2:

Acción 2

Case 3:

Acción 3

Case n:

Acción n

End Select

Private Sub cmdOk_Click()

Select Case ListBox1.ListIndex

Case 0

MsgBox "PEMEX"

Case 1

MsgBox "ECOPETROL"

Case 2

MsgBox "PDVSA"

Case 3

MsgBox "CHEVRON"

End Select

End Sub

Page 15: Presentacion 2 estructuras de control web renee gonzalez

Son estructuras que permiten modificar el flujo de ejecución de las

instrucciones de un algoritmo o programa, representando ciclos o

bucles.

Sentencias de control iterativas

While - wend

While condiciónInstrucciones

Wend

Page 16: Presentacion 2 estructuras de control web renee gonzalez

Son estructuras que permiten modificar el flujo de ejecución de las

instrucciones de un algoritmo o programa, representando ciclos o

bucles.

Sentencias de control iterativas

While - wend

While condiciónInstrucciones

Wend

Private sub cmdOk_click()i = 1While i <= 3

Cells(i, 1).Value = ii = i + 1

WendEnd Sub

Page 17: Presentacion 2 estructuras de control web renee gonzalez

Sentencias de control iterativas

Índice <= Valor final

Verdadero

Falso

For - Next

Page 18: Presentacion 2 estructuras de control web renee gonzalez

Sentencias de control iterativas

For i = 1 to N Step Aumento

Instrucciones

Next i

Private Sub cmdFor_Click()

For i = 1 To 3 Step 1

Cells(i, 5).Value = i

Next i

End Sub

For - Next

Page 19: Presentacion 2 estructuras de control web renee gonzalez

Son estructuras que permiten modificar el flujo de ejecución de las

instrucciones de un algoritmo o programa, representando ciclos o

bucles.

Sentencias de control iterativas

DoAcciones (Instrucciones)

Loop While condición

Private Sub cmdOk_Click()i = 1Do

i = i + 1MsgBox i

Loop While i <= 3End Sub

Do - While

verdadero

falso

Page 20: Presentacion 2 estructuras de control web renee gonzalez

Estructura s Repetitivas: Mientras (While) y Para (For)

Private Sub cmdWhile_Click()i = 1

While i <= 3

Cells(i, 1).Value = ii = i + 1

WendEnd Sub

Private Sub cmdFor_Click()For i = 1 To 3

Cells(i, 5).Value = i

Next iEnd Sub

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado

derecho)

Page 21: Presentacion 2 estructuras de control web renee gonzalez

Estructura s Repetitivas: Mientras (While) y Para (For)

Private Sub cmdLimpiar_Click()

For i = 1 To 3

Cells(i, 5).ClearContentsCells(i, 1).ClearContents

Next i

End Sub

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado

derecho)

Page 22: Presentacion 2 estructuras de control web renee gonzalez

Para analizar luego de clases…

Estructura s Repetitivas: Mientras (While) y Para (For)

Private Sub cmdConteo_Click()Dim i As Integer'cuento filas con informacióni = 0Range("A1").SelectWhile (Selection <> "")

ActiveCell.Offset(1, 0).Selecti = i + 1

Wend

MsgBox "Total de filas con información " &i - 1

For j = 1 To i - 1

MsgBox Cells(j + 1, 1)Next j

End Sub

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Page 23: Presentacion 2 estructuras de control web renee gonzalez

Private Sub cmdConteo_Click()Dim i As Integer'cuento filas con informacióni = 0Range("A1").SelectWhile (Selection <> "")

ActiveCell.Offset(1, 0).Selecti = i + 1

WendMsgBox "Total de filas con información " & i - 1

For j = 1 To i - 1

MsgBox "Elemento " & j & " " & Cells(j + 1, 1)Next j

End Sub

Estructuras Repetitivas: Mientras (While) y Para (For)

Ejercicio: Construya la siguiente interfaz (lado izquierdo) y codifique los botones (lado derecho)

Page 24: Presentacion 2 estructuras de control web renee gonzalez

Próxima Clase

Operadores Lógicos y Operadores relacionales.

Traer algún problema que pueda ser resuelto en Macro

para conversarlo en la clase

Macros incorporando comando de Crystal Ball.