Paul Leger http://pleger.cl pleger@ucn.cl Ciclos:FOR Paul Leger http://pleger.cl pleger@ucn.cl
Recorriendo 6 celdas de la columna 1
FOR (1/2) For es una instrucción para lograr ciclos en los lenguajes de programación. Ejemplo: Dim i As Integer For i = 2 To 7 MsgBox(“Nombre: ” + Str(cells(i,1).value)) Next I Este programa muestra 6 mensajes, uno por cada nombre
Analizando el código con for Dim i As Integer For i = 2 To 7 MsgBox(“Nombre: ” + cells(i,1).value) Next i Variable i va desde 2 hasta 7 SALIDA: . . . 7 Gabriel JUAN ANA 2 3
Los datos del primer alumno: Juan 70 20 30 Otro ejemplo del For Dim i As Integer For i = 1 To 4 MsgBox(“Datos del primer alumno: ” + str(cells(2,i).value)) Next i ¿Qué muestra este programa? Los datos del primer alumno: Juan 70 20 30
Una versión mejorada del for Dim i As Integer Dim texto As String texto = “” For i = 1 To 4 texto = texto + str(Cells(2,i).value) + “ “ Next i MsgBox(texto) No Muestra un mensaje por cada linea del for ¿Qué muestra este programa?
«For» e «If» juntos Encuentre una si un estudiante esta en una tabla Dim i As Integer Dim estudianteBuscado As String estudianteBuscado = Cells(3,3).value For i = 2 To 10 If cells(i,1).value = estudianteBuscado Then msgBox(“encontrado”) End If Next i
Como llego a la última celda for llega a hasta una posición fija (ej. 10), pero ¿Qué pasa si un usuario agrega un nuevo registro? Dim i, ultimaFila As Integer ultimaFila = Range("A65536").End(xlUp).Row for i = 2 to ultimaFila if cells(i,1).value = “Pepe” then MsgBox(“Lo encontré”) End if Next i
¿Cómo llego a la última columna? Dim i, ultimaColumna As Integer Dim suma As Integer suma = 0 ultimaColumna = Cells(1, Columns.Count).End(xlToLeft).Column for i = 3 to ultimaColumna suma = suma + Cells(1,i).value Next I Dim promedio As Double promedio = suma /(ultimaColumna – 2) MsgBox(promedio) ¿Qué hace la siguiente macro?
Ejercicios (FÁCIL) Realice el mismo ejercicio anterior (buscar un nombre), pero que muestre el nombre del alumno buscado (FÁCIL) Recorra los nombres de la tabla y muestra un mensaje de advertencia si hay un campo vacío (MEDIO) Usando for, obtenga el promedio de la nota 1 del curso (MEDIO) Usando for, encuentra la nota mayor de las notas 1 (DIFÍCIL) Realice el mismo ejercicio anterior, pero si el alumno esta dos veces, no muestre dos veces el mensaje
¿Consultas?