Cursos gratis en Área Interactiva

En Área Interactiva cursos gratis Office "Microsoft Office" y "OpenOffice"
Principal
¿Quien somos?
Boletín novedades
Contacta
Recomienda areaint
 
Zona usuarios
Alta usuarios
Recursos usuarios
Recordar contraseña
 
Blog de areaint
 
Recursos
Agencias de viajes
Sigue la historia
Funciones Excel
Programación PHP
Profesor particular
Cursos gratis
 
 
 
 

Comparación entre columnas.


    En esta lección vamos a ver una macro la cual nos permitirá comparar dos columnas de elementos, eliminando de la primera los elementos que existan en la segunda. Esta macro me la pidieron para hacer borrar muchos elementos de una lista sin tener que irlos buscando uno a uno. 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 y eliminar de la primera. 

    A continuación escribiremos la macro completa y después explicaremos que realiza cada una de las líneas.

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 tengamos todos los datos de nuestra lista y la columna B, los datos que deseamos buscar y eliminar de la primera columna.

    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.

    Línea 12: si el usuario contesta afirmativamente eliminamos la celda y desplazamos la lista hacía arriba, de esta forma no tenemos huecos en medio de la lista.

    Línea 13: terminamos la estructura Si que hemos iniciado en la línea 11.

    Línea 14: como se ha localizado un elemento coincidente pondremos la variable Salir con valor Si.

    Línea 15: aquí empezamos el caso en el que el valor que tenemos seleccionado en la primera columna con el valor de la variable valorcomparacion no sea coincidente.

    Línea 16: si no coinciden los datos lo que hacemos es avanzar una posición dentro de la primera columna.

    Línea 17: aquí terminamos la estructura If iniciada en la línea 9.

    Línea 18: terminamos el bucle iniciado en la línea 8.

    Línea 19: incrementamos en uno el valor de la variable Posicion ya que estamos avanzando una posición dentro de la segunda columna.

    Línea 20: pasamos a la segunda columna para continuar con la comparación de los elementos. 

    Línea 21: avanzamos en la segunda columna tantas veces como se nos indique en la variable Posicion para iniciar nuevamente el proceso de comparación entre los elementos de ambas columnas.

    Línea 22: terminamos el bucle principal de esta macro.

    Línea 23: terminamos la macro.


    Esta macro es bastante completa, os recomendamos repasarla cuantas veces creáis oportunas hasta que quede completamente clara. Para probar la macro simplemente deberéis copiar una serie de elementos en la primera columna y en la segunda poner algunos de los elementos que están en la primera.

[INDICE LECCIONES]


Otras webs de XavAl multimedia

- Conoce todos los secretos de las Funciones de Excel (www.funcionesexcel.com) -
- Lee y escribe en Sigue la historia, web de literatura colaborativa (www.siguelahistoria.com) -
- Cursos gratis Microsoft Office y OpenOffice (www.areaint.com) -