8 - Trabajando con Celdas y Rangos 8.52 Quitar espacios en celdas El tema no se encuentra disponible en esta versión DEMO 8.53 Proteger rangos o celdas El tema no se encuentra disponible en esta versión DEMO 8.54 Recorrer celdas protegidas El tema no se encuentra disponible en esta versión DEMO © <2005=2010> Elsa M.Meyer (Elsamatilde) 60 Capítulo IX 9 - Bucles: Instrucciones o Comandos Especiales 9 9 - Bucles: Instrucciones o Comandos Especiales 9.1 Qué es un bucle? 62 El tema no se encuentra disponible en esta versión DEMO 9.2 FOR EACH.....NEXT La expresión 'For Each Next' permite recorrer todas las ocurrencias que componen un objeto. Sintaxis: For Each elemento In grupo [instrucciones] [Exit For] [instrucciones] Next [elemento] 'por cada elemento del grupo 'se ejecutan las instrucciones 'opción de salir del bucle 'opción de ejecutar otras instrucciones 'se repite el ciclo para el elemento siguiente Por ejemplo: Recorrer todas las hojas de un libro (hoja/Worksheets), recorrer las celdas de un rango (celda/Range) o los libros abiertos (libro/Workbooks) Ejemplo: Recorrer un rango que previamente se habrá seleccionado. Pasar a color de fuente azul si la celda contiene datos. Sub RecorreCeldas() Dim celda As Range Dim rango As Range 'se toma el rango seleccionado previamente Set rango = Selection 'por cada celda en el rango For Each celda In rango 'si la celda está vacía If celda.Value = "" Then 'se coloca color de fuente automático celda.Font.ColorIndex = xlAutomatic 'si la celda tiene datos Else 'se coloca la fuente de color azul celda.Font.ColorIndex = 5 © <2005=2010> Elsa M.Meyer (Elsamatilde) 63 Manual 400 Macros Plus End If 'se repite el bucle, con la siguiente celda del rango Next End Sub Nota: con la pestaña 'Buscar' de este manual, podrán encontrar otros ejemplos del uso de este comando. 9.3 For ...... Next El tema no se encuentra disponible en esta versión DEMO 9.4 While .... Wend El tema no se encuentra disponible en esta versión DEMO 9.5 If.... ElseIf....Else.... El tema no se encuentra disponible en esta versión DEMO 9.6 Do While .... Loop El tema no se encuentra disponible en esta versión DEMO 9.7 Do Until.... Loop El tema no se encuentra disponible en esta versión DEMO © <2005=2010> Elsa M.Meyer (Elsamatilde) 9 - Bucles: Instrucciones o Comandos Especiales 9.8 Uso de SET El tema no se encuentra disponible en esta versión DEMO 9.9 With....End With El tema no se encuentra disponible en esta versión DEMO 9.10 Uso de Select Case El tema no se encuentra disponible en esta versión DEMO © <2005=2010> Elsa M.Meyer (Elsamatilde) 64 Capítulo X 10- Trabajando con fórmulas 10 10- Trabajando con fórmulas 10.1 Trabajando con fórmulas 66 El tema no se encuentra disponible en esta versión DEMO 10.2 INTRODUCIR FÓRMULAS EN CELDAS Si la versión de Excel es en español y así aparecen las funciones en la barra de fórmulas, para colocarlas en el Editor es necesario conocer las versiones en inglés de las funciones a utilizar. Por eso lo mejor es grabar una macro con la grabadora (* Ver capítulo Introducción- Cómo crear una macro), y luego ajustar las referencias. Ejemplo 1: Restar un rango de otro Sub formula1() Range("K10").Formula = "=+SUM(A1:J10)-SUM(K11:K12)" End Sub Ejemplo 2: Devolver valores a la izquierda Sabemos que BuscarV devuelve valores a derecha. Para devolver los que se encuentran a la izquierda del dato buscado, necesitamos utilizar las funciones Indice y Coincidir Sub formula2 ActiveCell.Formula = "=+INDEX(C:C,MATCH(F2,E:E,0))" End Sub Esta fórmula aparecerá en la hoja como: =+INDICE(C:C;COINCIDIR(F2;E:E;0)) Nota: ver ejemplo completo en el capítulo 'Buscando Datos, Función BuscarV' IMPORTANTE: la lista completa de funciones en Español e Inglés la encontrarán en el Manual: 'Excelencias' de la misma autora. Se entrega de forma gratuita con la compra de este manual © <2005=2010> Elsa M.Meyer (Elsamatilde) 67 10.3 Manual 400 Macros Plus Armar fórmula con datos variables El tema no se encuentra disponible en esta versión DEMO 10.4 Modificar fórmula de celda El tema no se encuentra disponible en esta versión DEMO 10.5 Colocar resultado de fórmula en celdas El tema no se encuentra disponible en esta versión DEMO © <2005=2010> Elsa M.Meyer (Elsamatilde) Capítulo XI 69 11 Manual 400 Macros Plus 11- Trabajando con Objetos Insertados en Hoja Por Objeto Insertado hago referencia a los objetos de la Barra de Herramientas Cuadro de Controles o Formulario, como así también a los que se insertan con la Barra de Dibujo (Autoformas, Imagen, etc). Estos objetos se denominan Shapes o Pictures para las imágenes Los ejemplos que encontrarán a continuación pueden adaptarse a cualquier objeto dentro de la misma categoría, siguiendo las propiedades propias de cada uno. 11.1 Algunas consideraciones previas El tema no se encuentra disponible en esta versión DEMO 11.2 ListBox, Combobox y Textbox 11.2.1 COMENTARIOS GENERALES Las siguientes rutinas, son generales para cualquier control (ComboBox, Listbox, etc). Solo se deberá reemplazar la expresión 'ComboBox' por 'ListBox' o el que corresponda. Pero debemos tener en cuenta qué barra utilizamos para dibujar el control. Ver imagen de la ubicación de las barras en nueva versión Excel2007 en la primer entrada de este capítulo. En general he utilizado la barra de herramientas: Cuadro de controles o ActiveX A continuación algunos ejemplos utilizando también la barra 'Formularios' ActiveSheet.ComboBox1.Visible = True 'Cuadro de controles ActiveSheet.ListBox1.Visible = True 'Cuadro de controles ActiveSheet.DropDowns("Lista desplegable 9").Visible=True 'Formularios ActiveSheet.Shapes("Cuadro de lista 8").Visible = False 'Formularios Nota: para conocer el nombre del objeto dibujado con esta barra, selecciona el mismo con clic derecho. A la derecha de la barra de fórmulas, aparecerá en el Cuadro de nombres, el nombre del control. También haciendo clic derecho sobre el control, opción 'Asignar Macro' se verá en la ventana emergente el nombre del control. Luego cancelar esta ventana. © <2005=2010> Elsa M.Meyer (Elsamatilde)