Realizar resumen sin celdas vacías

Tengo una macro que copia la columna O y pega los datos en la columna P sin valores repetidos sin embargo cuando hay alguna celda vacía en P también hace el resumen en la otra columna con dicho valor vacío. Necesito que el resumen de la columna P no tenga celdas vacías.

Sub Resumen_ejercicios()
'
' Resumen_ejercicios Macro
'
'
    Range("O2:O49").Select
    Selection.Copy
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 1
    Range("P2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveSheet.Range("$P$2:$P$49").RemoveDuplicates Columns:=1, Header:=xlNo
    Range("Q2").Select
End Sub

1 respuesta

Respuesta
2

Te paso la macro actualizada:

Sub Resumen_ejercicios()
'
' Resumen_ejercicios Macro
'
  Range("O2:O49").SpecialCells(xlCellTypeConstants).Copy
  Range("P2").PasteSpecial Paste:=xlPasteValues
  Range("$P$2:$P$49").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

Avísame cualquier duda, no olvides valorar.

Dante, buenos días.

Cuando ejecutó la macro me indica "Se ha producido el error '1004' en tiempo de ejecución:

No se encontraron celdas.

Y resalta en amarillo la primer línea.

¿Que será?

Eso significa que las celdas a copiar están vacías. No hay nada a copiar.

¿Tienes fórmulas en esas celdas?

Puedes poner una imagen.

Si, el O2 es la información de D2 y así sucesivamente. D2 también tiene fórmula.

Supongo que la fórmula, tiene alguna condición y regresa vacío o algo así.

Ayudaría mucho si pones aquí la fórmula.

Prueba lo siguiente.

Sub Resumen_ejercicios()
'Act. Por Dante Amor
' Resumen_ejercicios Macro
'
  Dim c As Range
  Dim i As Long
  i = 2
  Range("$P$2:$P$49").Cells.ClearContents
  For Each c In Range("O2:O49")
    If c.Value <> "" Then
      Range("P" & i).Value = c.Value
      i = i + 1
    End If
  Next
  Range("$P$2:$P$49").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

Dante

La fórmula de donde trae los datos tiene está estructura. Está fórmula matricial busca las coincidencias indicadas en C2 y hace un listado.

{SI.ERROR(INDICE($B$1:$B$104;K.ESIMO.MENOR(SI(C$2=$A$1:$A$104;FILA($B$1:$B$104)-MIN(FILA($A$1:$A$104))+1;"");FILA()-1));)}

Aquí el archivo.

https://drive.google.com/file/d/1xET9anecnpMnzIPN32zlcLh8FxFXey37/view?usp=drivesdk

Gracias 

"Sin embargo cuando hay alguna celda vacía en P también hace el resumen en la otra columna con dicho valor vacío. "

Tu petición dice "vacío", pero tus fórmulas regresan "0".

Prueba la siguiente macro:

Sub Resumen_ejercicios()
'Act. Por Dante Amor
' Resumen_ejercicios Macro
'
  Dim c As Range
  Dim i As Long
  i = 2
  Range("$P$2:$P$49").Cells.ClearContents
  For Each c In Range("O2:O49")
    If c.Value <> "" And c.Value <> 0 Then
      Range("P" & i).Value = c.Value
      i = i + 1
    End If
  Next
  Range("$P$2:$P$49").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

Hice la prueba con tu archivo y ya funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas