Hace unos días un usuario me consultaba sobre la forma de construir una macro que marcara el color de la etiqueta de la hoja cuyo nombre coincidiera con el año corriente.
Suponiendo un libro de trabajo, con seis hojas llamadas '2010', '2011', '2012', '2013', '2014' y '2015':
Para ejecutar la acción solicitada insertaremos un evento WorkBook_Open() en la Hoja de trabajo (ThisWorkBook), que recorra los nombres de todas las hojas existentes en el libro, para que cuando encuentre la coincidencia Nombre Hoja con Año presente, le de un color rojo y la deje activa.
El código que insertaremos en ThisWorkBook del Explorador de proyectos del Editor de VBA, formando nuestra macro de Excel, con un evento Open, quedando:
Queda una macro sencilla que cada vez que abramos nuestro libro de trabajo la rutina revisará los nombres de la hoja, y marcarña de color rojo aquella que coincida con el año actual.
...Tengo un libro con varias hojas llamadas 2011-2012-2013-2014-2015 y quiero que la pestaña de la hoja del año en curso se remarque con un color,por ejemplo Rojo, pero de forma automatica, como si le asignaramos un formato condicional., para indicar al usuario de forma visual la hoja a utilizar.... |
Suponiendo un libro de trabajo, con seis hojas llamadas '2010', '2011', '2012', '2013', '2014' y '2015':
Para ejecutar la acción solicitada insertaremos un evento WorkBook_Open() en la Hoja de trabajo (ThisWorkBook), que recorra los nombres de todas las hojas existentes en el libro, para que cuando encuentre la coincidencia Nombre Hoja con Año presente, le de un color rojo y la deje activa.
El código que insertaremos en ThisWorkBook del Explorador de proyectos del Editor de VBA, formando nuestra macro de Excel, con un evento Open, quedando:
Private Sub Workbook_Open() 'definimos las variables 'para comparar con el nombre de la etiqueta de cada hoja 'definimos el año como cadena de texto - String Dim numhojas As Long, anyo As String numhojas = Sheets.Count anyo = Year(Now()) 'recorremos todas las hojas buscando el nombre de la etiqueta 'que coincide con el año presente For i = 1 To numhojas Set etiqueta = ActiveWorkbook.Sheets(i).Tab 'cuando coincida le damos un color rojo y 'activamos la hoja If Sheets(i).Name = anyo Then etiqueta.Color = vbRed Sheets(i).Activate Else etiqueta.Color = xlNone End If Next i End Sub
Queda una macro sencilla que cada vez que abramos nuestro libro de trabajo la rutina revisará los nombres de la hoja, y marcarña de color rojo aquella que coincida con el año actual.
Hola
ResponderEliminarNecesito saber cómo puedo programar mis propios tooltips en las funciones personalizadas de Exel que yo haga, igual como se muestran cuando uno digita cualquier función de Excel, que muestra en un recuadro y marcado con negrita los diferentes argumentos que se usan en cada función.
Ya sé crear mis propias funciones pero solo me falta agregarles ese detalle que lo considero importante.
Gracias
Hola Adrián,
Eliminardepende de la versión de Excel con la que trabajes es bastante complejo y largo incorporar a nuestras funciones UDF las ayudas para los diferentes argumentos...
Por suerte para 2010 y + el asunto se simplifica bastante con el método macrooptions... trataré de escribir un post sobre el tema.
De momento, de manera sencilla puedes agregar a una categoría diferente y añadirle una descripción general de la función:
http://excelforo.blogspot.com.es/2009/11/asignar-categoria-una-udf-funcion.html
La solución pasa por lo expuesto en el link.
UN saludo