Es verdad, hay ciertos aspectos de Excel que pueden volverse molestos, ciertas funcionalidades que faltan o cosas que no funcionan como quisiéramos. Pero por otra parte Excel nos ofrece suficientes herramientas para corregir, aunque se parcialmente, estas situaciones. Un ejemplo mostramos ayer en la nota sobre cómo agregar un icono para cancelar el autofiltro.
Otra funcionalidad que encuentro un tanto molesta en Excel es cuando agregamos una hoja a un cuaderno (en particular por mi mala costumbre de no planear el diseño del cuaderno de antemano y verme obligado a agregar hojas a medida que el proyecto avanza).
En Excel 2003 (y versiones anteriores hasta Excel 97, si no me equivoco) podemos agregar una hoja con uno de estos métodos:
# - abriendo el menú insertar en la pestaña de la hoja
# - con el icono del comando Insertar hoja de cálculo (que podemos arrastrar y ubicar en alguna de las barras de herramientas)
El problema con estos métodos es que no tenemos control de donde será ubicada la hoja. Lo natural sería que a la derecha de la última, pero no es esto lo que sucede. Por algún motivo Excel pone la nueva hoja a la izquierda de la hoja activa. Además, Excel pone un nombre por defecto. Mi idea es que Excel inserte la nueva hoja a la izquierda de la última del cuaderno y que nos invite a poner el nombre antes de crearla.
Para hacer esto usaremos una macro que luego ligaremos al icono de insertar hoja de cálculo. La macro la guardamos en el cuaderno Personal.xls, para que esté disponible para todo cuaderno de Excel con el cual estemos trabajando.
El código de nuestra macro es:
Sub agregar_hoja_con_nombre()
'02/03/2009 by Jorge Dunkelman
Dim shName As String
If ActiveWorkbook Is Nothing Then Exit Sub
shName = Application.InputBox(prompt:="Nombre de la hoja?", Title:="Nombre", _
Type:=2)
Select Case shName
Case Is = "False"
MsgBox "No se ha insertado una hoja"
Exit Sub
Case Is = ""
Sheets.Add after:=Sheets(Sheets.Count)
Case Else
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = shName
End Select
End Sub
Al correr la macro comprueba en primer lugar si hay un cuaderno abierto (de lo contrario no hay donde agregar la hoja!). Luego se abre una ventanilla donde se nos pide definir el nombre de la hoja. En caso de dejarlo en blanco se insertará una hoja con el nombre por defecto (Hoja4, Hoja5, etc.); en caso de apretar Cancelar aparecerá un mensaje diciendo que no se ha insertado la hoja y en caso de poner un valor éste aparecerá en la pestaña de la hoja.
La hoja siempre se inserta a la derecha de la última hoja del cuaderno sin tomar en cuenta cuál era la hoja activa en ese momento.
Estamos usando el método InputBox (y no la función InputBox de Vba), para poder distinguir cuando el usuario aprieta Cancelar de cuando deja el nombre en blanco.
Ahora sólo nos queda por crear el icono y agregarlo a alguna de las barras. Podemos crear un icono de la categoría macro (como vimos en la nota anterior) y luego cambiar la imagen copiándola del icono de insertar hoja que existe en Excel.
Para hacer esto abrimos el menú Herramientas-Personalizar y usamos Copiar imagen
Luego elegimos el icono que acabamos de crear y pegamos la imagen (y por supuesto, lo ligamos a la macro que guardamos en el cuaderno Personal.xls)
La técnica para crear el icono en Excel 2007 está explicada en esta nota.
Technorati Tags: MS Excel