Valor repetido en una Columna y eliminacion de la misma

03/07/2003 - 17:09 por Marcelo Rodrigo Sosa | Informe spam
Hola Compañeros, que puedo hacer para encontrar un los
valores repetidos que se encuentran en una columna y además eliminar esa
fila de forma automatica?? yo tengo la siguiente macro:
Sub borrar_fila()
Dim x, y 'variable inicio de la fila
x = 5
y = n
Do 'recorro la columna 2
'If cell(x, 8).Value <= 0 Then
If ActiveCell.FormulaR1C1 = "=if(countif(TODOS,RC[-1]=2,y=s,y=n)" Then
&&quiero hacer algo como contar.si()
If y = s Then
Rows(x).Delete 'borro la fila actual
Else
x = x + 1 'continuo con la siguiente fila
End If
End If
Loop While IsEmpty(Cells(x, 8)) 'vuelco hasta que este vacia
End Sub
Por que esto no funciona??? Nota: Se queda plantado mi Excel.

Desde ya muchas gracias.
 

Leer las respuestas

#1 Fernando Arroyo
04/07/2003 - 09:02 | Informe spam
Prueba con esto:

Const intNúmCol As Integer = 1 'Se procesará la columna A

Sub BorrarDuplicados()
Dim wksH As Worksheet
Dim lngContFila As Long
Set wksH = Worksheets("Hoja1") 'Hoja que se procesará

lngContFila = 1 'Si hay títulos tendrá que ser 2

While Not IsEmpty(wksH.Cells(lngContFila, intNúmCol))
If Application.WorksheetFunction.CountIf(wksH.Columns(intNúmCol), wksH.Cells(lngContFila, intNúmCol)) > 1 Then
wksH.Cells(lngContFila, intNúmCol).Delete
Else
lngContFila = lngContFila + 1
End If
Wend

Set wksH = Nothing
End Sub


El número de columna a procesar lo determina la 1ª instrucción. Tal como está el código, sería la columna A.
Como hago siempre que se trata de eliminar datos, te aconsejo que pruebes el código en una copia del libro.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Marcelo Rodrigo Sosa" escribió en el mensaje news:
Hola Compañeros, que puedo hacer para encontrar un los
valores repetidos que se encuentran en una columna y además eliminar esa
fila de forma automatica?? yo tengo la siguiente macro:
Sub borrar_fila()
Dim x, y 'variable inicio de la fila
x = 5
y = n
Do 'recorro la columna 2
'If cell(x, 8).Value <= 0 Then
If ActiveCell.FormulaR1C1 = "=if(countif(TODOS,RC[-1]=2,y=s,y=n)" Then
&&quiero hacer algo como contar.si()
If y = s Then
Rows(x).Delete 'borro la fila actual
Else
x = x + 1 'continuo con la siguiente fila
End If
End If
Loop While IsEmpty(Cells(x, 8)) 'vuelco hasta que este vacia
End Sub
Por que esto no funciona??? Nota: Se queda plantado mi Excel.

Desde ya muchas gracias.


Preguntas similares