Documentos de Académico
Documentos de Profesional
Documentos de Cultura
resumir detalle
Francisco 08-05-07
Programacin : Ofimtica : Curso de macros de MS-Excel 2007
Ejemplo
Tabla ordenada
Seccin
Primera
Primera
Primera
Primera
Primera
Primera
Segunda
Segunda
Segunda
Segunda
Tercera
Tercera
Tercera
Tercera
Cuarta
Quinta
Quinta
Categora
Alfa
Alfa
Alfa
Alfa
Alfa
Alfa
Beta
Beta
Beta
Beta
Gamma
Gamma
Gamma
Gamma
Delta
Epsilon
Epsilon
Cdigo
A
A
A
B
B
C
A
B
B
B
A
B
C
C
A
A
B
Sin duplicados
Seccin
Primera
Primera
Categora
Alfa
Alfa
Cdigo
A
B
Primera
Segunda
Segunda
Tercera
Tercera
Tercera
Cuarta
Quinta
Quinta
Alfa
Beta
Beta
Gamma
Gamma
Gamma
Delta
Epsilon
Epsilon
C
A
B
A
B
C
A
A
B
Detalle resumido
Seccin
Primera
Segunda
Tercera
Cuarta
Quinta
Categora
Alfa
Beta
Gamma
Delta
Epsilon
Cdigo
A, B, C
A, B
A, B, C
A
A, B
rango As Range
filaAnterior As Range, fila As Range
compararAnterior As Range, comparar As Range
detalleAnterior As Range, detalle As Range
indice As Integer, numColumnas As Integer
Sub EliminarDuplicados()
'Elimina filas duplicadas slo si son consecutivas,
Dim rango As Range
Dim filaAnterior As Range, fila As Range
Dim indice As Integer
Set rango = ActiveCell.CurrentRegion
Set filaAnterior = rango.Rows(1)
indice = 2
Do While indice <= rango.Rows.Count
Set fila = rango.Rows(indice)
If RangosIguales(fila, filaAnterior) Then
fila.Delete
Else
Set filaAnterior = fila
indice = indice + 1
End If
Loop
End Sub
Function RangosIguales(rango1 As Range, rango2 As Range) As Boolean
'Retorna "true" si los valores de ambos rangos son iguales
Dim indice As Integer
Dim celda1 As Range
Dim celda2 As Range
If rango1.Cells.Count <> rango2.Cells.Count Then
RangosIguales = False
Exit Function
End If
For indice = 1 To rango1.Cells.Count
Set celda1 = rango1.Cells(indice)
Set celda2 = rango2.Cells(indice)
If celda1.Value <> celda2.Value Then
RangosIguales = False
Exit Function
End If
Next
RangosIguales = True
End Function
2 comentarios:
1 Brenda (no registrado) dice hace 7 aos:
Hola ! Estoy tratando de usar esta macro para otro archivo pero estoy teniendo
complicaciones.
Mi archivo original tiene en vez de dos campos iguales, tres campos iguales y
necesito agruparlos. En que parte de la secuencia hay que modificar dicho dato.
Mucahs Gracias,
Brenda
2 Eduardo (no registrado) dice hace 4 aos:
Buenas noches Yo tengo esta macro para introducir faltantes en una columna
Sub Macro_Consecutivo()
Dim Nro_Fila As Double
Dim Valor_Celda As Double
Dim Comienzo_Fila As Double
Nro_Fila = InputBox("Ingrese el Nro de Fila desde donde se Comenzar a
Chequear el Consecutivo", "No de Fila Inicial")
Comienzo_Fila = Nro_Fila
Valor_Celda = Range("F" & Nro_Fila).Value 'si no es la columna A cambiar letra
Do While Val(Range("F" & Nro_Fila).Value) > 0 'si no es la columna A cambiar
letra
If Nro_Fila > Comienzo_Fila Then
If Val(Range("F" & Nro_Fila).Value) > Valor_Celda Then 'si no es la columna A
cambiar letra
Rows(Nro_Fila & ":" & Nro_Fila).Select
Selection.Insert shift:=xlDown