Eliminar o juntar filas usando MACROS

05/10/2007 - 22:14 por RP | Informe spam
Hola, deseo hacer una macro que al presionar un boton, me elimine o junto
registros que son iguales, pero que compare 2 columnas a la vez. Ej:

A1 B1
A2 B2
A1 B1
los A1y B1, se junten en un solo A1 Y B1 en una sola fila...

Espero recibir alguna respuesta.


Atte.

RP

Preguntas similare

Leer las respuestas

#1 David
05/10/2007 - 23:22 | Informe spam
Hola, RP.

Por lo que veo, manejas bien el código, así que te mando este ejemplo para
que lo adaptes a tu caso.

Parto del supuesto que sólo son dos columnas de datos, que el rango parte de
la celda A1, que en A1 y B1 están los títulos de las dos columnas, y que no
tienes filas o columnas en blanco en tu listado de datos. Bajo estas
condiciones, prueba con lo siguiente:

Sub Ordenar()
Dim C1 As String, R1 As String
Dim H1 As String, H2 As String, X1 As String, X2 As String, F1 As Long,
F2 As Long

C1 = "A1"
R1 = Replace(Range("C1").CurrentRegion.Address, "$", "")

Range(C1).Range(R1).Sort _
Key1:=Range(C1), _
Order1:=xlAscending, _
Key2:=Range(C1).Offset(0, 1).Range("A1"), _
Order2:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal

H1 = ActiveSheet.Name
Sheets.Add
H2 = ActiveSheet.Name
F1 = 2
F2 = 2
Sheets(H2).Cells(1, 1) = Sheets(H1).Cells(1, 1).Value
Sheets(H2).Cells(1, 2) = Sheets(H1).Cells(1, 2).Value
Do
If Sheets(H1).Cells(F1, 1).Value = X1 And Sheets(H1).Cells(F1,
2).Value = X2 Then
F1 = F1 + 1
Else
Sheets(H2).Cells(F2, 1) = Sheets(H1).Cells(F1, 1).Value
Sheets(H2).Cells(F2, 2) = Sheets(H1).Cells(F1, 2).Value
X1 = Sheets(H1).Cells(F1, 1).Value
X2 = Sheets(H1).Cells(F1, 2).Value
F2 = F2 + 1
F1 = F1 + 1
End If
Loop Until Len(Sheets(H1).Cells(F1, 1)) = 0
End Sub


Este Sub lo debes ejecutar teniendo activa la hoja en la cual se encuentra
tu listado de datos. El código ordenará tus datos, generará una nueva hoja,
en en ella copiará sólo las filas que no tengan repeticiones en ambas
columnas.

Saludos...



"RP" escribió:

Hola, deseo hacer una macro que al presionar un boton, me elimine o junto
registros que son iguales, pero que compare 2 columnas a la vez. Ej:

A1 B1
A2 B2
A1 B1
los A1y B1, se junten en un solo A1 Y B1 en una sola fila...

Espero recibir alguna respuesta.


Atte.

RP
Respuesta Responder a este mensaje
#2 Ivan
06/10/2007 - 01:33 | Informe spam
Hola, deseo hacer una macro que al presionar un boton, me elimine o junto
registros que son iguales, pero que compare 2 columnas a la vez. Ej:
A1 B1
A2 B2
A1 B1
los A1y B1, se junten en un solo A1 Y B1 en una sola fila...



hola chicos,

otra posibilidad podria ser esta (para el ej. expuesto), solo modifica
en la macro el nombre de la hoja ("Hoja3") por la que contenga la
lista (tambien entre comillas)

'-en un modulo 'normal' pega desde aqui
'
ub UnicosPorFiltro()
Dim ultF
With ThisWorkbook.Worksheets("Hoja3")
ultF = .[a65536].End(xlUp).Row
Application.ScreenUpdating = False
If .FilterMode Then .ShowAllData
With .Range("a1:b" & ultF)
.AdvancedFilter Action:=xlFilterInPlace, _
criteriarange:="", unique:=True
With .Cells.SpecialCells(xlCellTypeVisible)
If .Rows.Count < ultF Then
ThisWorkbook.Worksheets.Add
.EntireRow.Copy Range("a1")
End If
End With
End With
If .FilterMode Then .ShowAllData
End With
End Sub
'
'-pega hasta aqui -

un saludo
Ivan
Respuesta Responder a este mensaje
#3 Ivan
06/10/2007 - 01:36 | Informe spam
OJO: me he comido la 1ª S del Sub : seria asi=>

Sub UnicosPorFiltro()
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida