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.

No hay comentarios: