domingo, 7 de diciembre de 2008

Crear botones en la barra de herramientas personalizada

En la lección anterior hemos visto cómo crear una barra de herramientas personalizada para colocar nuestros botones, los cuales ejecutarán una macro.

En esta lección veremos cómo crear estos botones.

5.- Dentro de la ventana Personalizar deberemos activar la pestaña: Comandos.

6.- En la lista de Categorías deberíamos hacer un clic sobre: Macros.

En la parte derecha de esta misma ventana aparecerán dos opciones: Personalizar elemento de menú y Personalizar botón, en esta ocasión utilizaremos la segunda de las opciones.

7.- Deberemos hacer un clic sobre la opción Personalizar botón para seleccionarla.

8.- Seguidamente deberemos desplazar este botón a la nueva barra de herramientas que hemos creado. Para ello simplemente deberemos situarnos encima, pulsaremos el botón izquierdo del ratón y mientras lo tenemos pulsado nos desplazaremos hasta situarnos encima de la barra de herramientas que hemos creado anteriormente.

9.- Una vez situado el cursor dentro de la barra de herramientas soltaremos el botón.

Podremos ver como dentro de la barra: Mis macros aparece el botón que hemos arrastrado.

Ahora que ya tenemos creado el botón en nuestra barra de herramientas, vamos a personalizarlo para que cumpla con su función.

Observa como en la ventana actual está activado el botón: Modificar selección.

10.- Pulsa este botón, desplázate hasta la opción: Cambiar imagen del botón.

11.- De la lista, selecciona el icono que más te guste.

Observa cómo la imagen del botón de nuestra barra de herramientas ha cambiado.

12.- Pulsa nuevamente el botón: Modificar selección.

Ahora lo que cambiaremos es el texto que aparecerá en el momento en el que pongamos el ratón encima de este botón, así de esta forma siempre podremos recordar que función hace dicho botón.

13.- Selecciona la opción Nombre: y escribe: Repetir con informe.

En la siguiente lección asignaremos la macro a este botón.

Barra de herramientas personalizada

Hasta esta lección hemos visto cómo copiar, guardar y poner en funcionamiento una macro utilizando el menú de herramientas Herramientas - Macro.

En muchas ocasiones puede ser que tengamos una macro la cual necesitemos poner en funcionamiento muchas veces con lo que el hecho de abrir el menú y buscar dicha macro nos puede ser un poco engorroso.

En esta lección vamos a ver una forma de crear una nueva barra de herramientas en la que pondremos un botón para que al pulsarlo se ponga en funcionamiento la macro.

Explicaremos los pasos necesarios para conseguir esto.

Crear una barra de herramientas nueva

1.- Abrir el menú Ver - Barras de herramientas y seleccionar la opción: Personalizar.

A continuación aparecerá una nueva ventana llamada: Personalizar.

2.- De esta ventana pulsar sobre el botón: Nueva...

Nos aparecerá una ventana llamada: Nueva barra de herramientas en la que deberemos especificar el nombre que le deseamos dar a nuestra barra para poderla diferenciar del resto.

3.- Para nuestro ejemplo podríamos poner como nombre: Mis macros.

4.- A continuación pulsar Aceptar.

Podremos observar como en la lista de barras de herramientas disponibles aparece el nombre que acabamos de poner. A la derecha del nombre aparecerá una indicación conforme esta barra está visible. Si no la ves puedes mover la ventana Personalizar.

Ahora ya tenemos nuestra nueva barra de herramientas creada. En la siguiente lección aprenderemos cómo podemos crear un botón dentro de esta barra para que al pulsarlo se ejecute una de nuestras macros.

Macro Comparación entre columnas - Explicación primeros pasos

En esta lección realizaremos la explicación paso a paso de la macro que hemos escrito anteriormente para la comparación entre dos columnas.

Línea 2: con esta instrucción nos situamos en la primera celda de la columna B para empezar a buscar los datos que deseamos borrar.

Línea 3: creamos una variable llamada Posición para controlar en que fila nos encontramos de la segunda columna

Línea 4: aquí creamos un bucle que se repetirá hasta que no se terminen los elementos a buscar.

Línea 5: creamos una variable llamada valorcomparacion con la que trabajaremos para ir comparando los elementos de la primera y segunda columna. El valor de la celda en la que nos encontramos en la columna B, pasa a estar en la variable valorcomparacion.

Línea 6: cambiamos a la columna A para iniciar el proceso de comparación.

Línea 7: creamos una nueva variable llamada Salir con la que controlaremos si debemos salir del bucle o no. Solamente saldremos en el momento en el que se encuentre un elemento que está en la segunda y primera columna.

Línea 8: aquí iniciamos un bucle que se repetirá hasta que se llegue al final de la primera columna, (caso que se dará cuando no existan elementos comunes) o hasta que se encuentre un elemento común, (esto nos lo indicará la variable Salir).

Línea 9: en esta línea preguntaremos si la celda en la que nos encontramos (primera columna) es igual que el valor que tenemos dentro de la variable: valorcomparacion.

Línea 10: si se ha producido la coincidencia de elementos procedemos a preguntar si realmente deseamos borrar este elemento.

Línea 11: miramos si la respuesta del usuario ha sido afirmativa.

Seguiremos la explicación paso a paso en la siguiente lección.

jueves, 4 de diciembre de 2008

Macro - Comparación entre columnas

En las lecciones anteriores hemos visto como eliminar elementos repetidos existentes en una misma fila. En este ejemplo realizaremos comparaciones entre diferentes columnas, eliminando de la primera los elementos que existan en la segunda.

En la primera columna están todos los elementos que forman parte de la lista y en la segunda columna se van colocando los elementos que se desean buscar para eliminar de la primera.

A continuación escribiremos la macro completa y después explicaremos que realiza cada una de las líneas. El número que aparece al principio de cada una de las líneas nos servirá como guía en la explicación, no debes copiarlos en el Editor.

1 Sub Repetidos()

2 Range("B1").Select

3 Posicion = 1

4 While ActiveCell.Value <> ""

5 valorcomparacion = ActiveCell.Value

6 Range("a1").Select

7 Salir = "no"

8 While ActiveCell.Value <> "" And Salir = "no"

9 If ActiveCell.Value = valorcomparacion Then

10 respuesta = MsgBox("¿Deseas borrar esta entrada?", 4, "¡¡Encontrado!!")

11 If respuesta = vbYes Then

12 Selection.Delete Shift:=xlUp

13 End If

14 Salir = "si"

15 Else

16 ActiveCell.Offset(1, 0).Range("A1").Select

17 End If

18 Wend

19 Posicion = Posicion + 1

20 Range("b1").Select

21 ActiveCell.Offset(Posicion - 1, 0).Range("a1").Select

22 Wend

23 End Sub

Antes de realizar la explicación tenemos que dejar muy claro que la columna A, será donde tenemos todos los datos de nuestra lista y la columna B, los datos que deseamos buscar y eliminar de la primera columna.

Elementos repetidos en lista con registro

En esta lección seguiremos con la creación de macros que nos servirán para eliminar elementos repetidos de una lista.

Eliminar elementos repetidos en una lista y realizar un registro: en la primera macro que hemos mostrado en esta página eliminamos todos los elementos que aparecen repetidos dentro de una lista quedando uno solo de todos los elementos repetidos. Según para qué realizásemos este proceso nos podría interesar llevar un control de la cantidad de elementos que estaban repetidos, por esto sería conveniente crear en una hoja nueva, un registro de cual es el elemento repetido y el número de veces que aparecía dentro de la lista.

La macro siguiente necesita que los elementos estén ordenados en una primera hoja y que la segunda hoja esté vacía, ya que será aquí donde se realizará el registro de los elementos repetidos.

Sub EliminarRepetidosYRegistro()

contador = 1

valor = ActiveCell.Value

ActiveCell.Offset(1, 0).Range("A1").Select

While ActiveCell.Value <> ""

If ActiveCell.Value = valor Then

ActiveSheet.Next.Select

If ActiveCell.Value <> valor Then

ActiveCell.Offset(1, 0).Range("a1").Select

ActiveCell.Value = valor

End If

ActiveSheet.Previous.Select

Selection.Delete Shift:=xlUp

contador = contador + 1

Else

If contador <> 1 Then

ActiveSheet.Next.Select

ActiveCell.Offset(0, 1).Range("a1").Select

ActiveCell.Value = contador

ActiveCell.Offset(0, -1).Range("a1").Select

ActiveSheet.Previous.Select

End If

contador = 1

valor = ActiveCell.Value

ActiveCell.Offset(1, 0).Range("A1").Select

End If

Wend

If contador <> 1 Then

ActiveSheet.Next.Select

ActiveCell.Offset(0, 1).Range("a1").Select

ActiveCell.Value = contador

ActiveCell.Offset(0, -1).Range("a1").Select

ActiveSheet.Previous.Select

End If

End Sub