Ejercicios sobre Objetos Libros: 1) Obtener la ruta completa donde se encuentra un Libro abierto: En un módulo insertado en Libro1 escribir un Procedimiento RutaCompleta() que devuelva la ruta completa de este Libro. Indicaciones: a. Usar la siguiente instrucción con la variable tipo String vRuta: vRuta = ThisWorkbook.Path b. Utilizar un Cuadro MsgBox para informar al usuario: MsgBox “Ruta del Libro…”& ActiveWorkbook.Name & “=” & “vRuta” Donde hemos usado el operador & de concatenación o apending y el método ActiveWorkbook.Name de la Propiedad ActiveWorkbook del Objeto Application 2) Elegir la Hoja de Cálculo (la 3ª) que aparecerá al abrir el Libro con un mensaje y la Hora Indicaciones: a. Usar un Procedimiento AbrirHoja() con un mensaje de bienvenida en el MsgBox “Hola es la hora:…” y usando la función Time : MsgBox (“Hola, es la hora:….” & Time) b. Seleccionar la Hoja 3 del Libro corriente con: Sheets("Hoja3").Select 3) Actualizar todos los cálculos de una Hoja antes de cerrar el Libro Indicaciones: a. Ponemos en Fórmulas…Opciones para Cálculo en Manual. b. Escribimos un Procedimiento Recalcular() que fuerce la actualización de los cálculos antes de cerrar el libro, para ello usamos la instrucción: Application.CalculateBeforeSave =True Ejercicios sobre Objetos Hojas de Cálculo 4) Cambiar el nombre de la Hoja activa Indicaciones: a. Escribir un Procedimiento llamado Renombrar() usando una variable tipo String llamada vNombre y una caja de entrada InputBox: vNombre=InputBox(“Entrar el nuevo Nombre de la Hoja”) b. Usamos la propiedad Name de ActiveSheet en el Objeto Window: ActiveSheet.Name=vNombre 5) Desencadenar una acción cuando se activa una Celda de una Hoja Escribir un Procedimiento DesencadenarAbrir() cuando se haga clic en una Celda Indicaciones: a. Modificar el valor de la Celda con el String “Aquí estoy” mediante la instrucción: ActiveCell.Value= “Aquí estoy” b. Modificamos el formato de la Celda mediante: With ActiveCell.Font .Bold = True .Size = 1 .ColorIndex = 5 End With With Selection.Interior .ColorIndex = 36 End With With Selection .HorizontalAlignment = xlDistributed .VerticalAlignment = xlCenter End With Ejercicios sobre objetos Celdas 6) Recuperar el valor de una celda Escribir un Procedimiento RecuValor() en un Módulo, que devuelva el valor que hay en una celda dada. Por ejemplo escribir en la K4 la palabra “océano” y leer en un MsgBox : “la celda K4 contiene: océano”. 7) Modificar el valor de una celda Modificar el valor de K4 al valor entero : 45 con un Procedimiento ModiValor() 8) Modificar el Formato de una celda Escribir un procedimiento FormatoCelda() en la ventana de código de la Hoja Worksheet 1 que aplique a la celda K4 : fondo azul, caracteres amarillos y fuente Comic Sans tamaño 14. Indicaciones: a) Usar el método Select y la propiedad Selection del objeto Range: El método Select activa las hojas y los Objetos (Range) de las hojas; la propiedad Selection devuelve un objeto que representa la selección actual del Objeto Range de la Hoja activa del Libro activo. Antes de utilizar la propiedad Selection, se debe activar un Libro, activar o seleccionar un Hoja y, a continuación, seleccionar un Rango, u otro objeto, con el método Select b) Usar la estructura o construcción With-End With Sub FormatoCelda() Sheets(1).Activate Range("K4").Select Selection.Interior.ColorIndex = 5 With Selection.Font .ColorIndex = 36 .Name = "comic sans ms" ‘da igual ponerlo con Mayús. “Comic” o minús. “comic” .Size = 14 End With End Sub 9) Seleccionar todas las celdas en un Rango definido B100:E100 en la Hoja 2 Indicaciones: a) Activar la Hoja 2 b) Usaremos el método Select aplicado al Range(“B10:E100”) c) Hacer lo mismo pero llamando al Rango B10:E100 con el nombre : Zonal Ojo: hay que dimensionar al nombre Zonal con tipo Range: Dim Zonal As Range 10) Llenar una Tabla con números Escribir un Procedimiento Sub LlenarNum() en la Hoja 1 de manera que llene la siguiente Tabla con números del 1 al 12 en el Rango: M6:N11 1 2 3 4 5 6 7 8 9 10 11 12 Indicacion: usaremos un bucle For Each…Next, Sub LlenarNum() Dim tabla As Range Dim celda As Range Dim contador As Integer Sheets(1).Activate Set tabla = Range("M6:N11") tabla.Select For Each celda In Selection contador = contador + 1 celda = contador Next End Sub 11) Buscar un valor en una Tabla Con el Procedimiento BuscarRango() buscar con el método Find (en vez de un bucle: es más rápido) un número escrito por el usuario en la Tabla anterior. Una vez encontrado poner el valor en negrita. Sub BuscarRango() Sheets(1).Activate Set tabla = Range("M6:N11") num = InputBox("Escriba el valor a buscar") tabla.Find(num).Select ActiveCell.Font.Bold = True End Sub