Eliminar celdas blancas y subir de intentar excel VBa

El rango DC55 :DD91 deseo eliminar las celdas en blanco con VBa y que los valores se ordenen uno debajo del otro de manera continua y no separados por celdas vacías.

Estuve intentando con :

SUB BORRAVACIAS ()
Range("DC55:DD91").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete shift:=xlUp
END SUB

Pero me sale error me dice que las celdas están vacías.

Respuesta
4

¿Tienes fórmulas en las celdas?

Tal vez se vean vacías pero las celdas pueden tener espacios en blanco, revisa las celdas que aparentemente se ven vacías, que realmente estén vacías. Puedes seleccionar una por una y borrar el contenido.

Prueba nuevamente tu macro.

Hola Dante no no tiene fórmulas hasta hay llego con una macro pegado especial 123 solo números no hay fórmulas y las celdas vacías si si están vacías creo que el problema es que debajo del ultimo numero ya no hay nada y debo aplicar solo hasta le ultimo dígito realmente no se o tal vez deba colocar un valor para las celdas vacías para luego retirarlas no lo se, agradecería me ayudes a resolver estimadísimo Dante.

La macro funciona bien si las celdas están vacías.

Si estimado acabo de enviar el archivo hice algunas modificaciones realmente no entiendo por que sale error.

Las celdas no están vacías, tienen algún caracter especial.

Como te dije anteriormente, intenta borrar manualmente algunas celdas, es decir, selecciona una celda que aparentemente está vacía y presiona la tecla Supr. Repite los pasos para varias celdas. Ahora sí ejecuta la macro y verás que sí funciona.


Después de que realices la prueba, regresas a aquí y me dices de dónde estás tomando la información.

Ya encontré el caracter especial. Las celdas tienen el caracter 160.

Ejecuta este código para eliminar el caracter 160 y después eliminar las celdas vacías.

Sub EliminarVacias()
'Por Dante Amor
  Dim c As Range
  With Range("DC55:DE91")
    For Each c In .Cells
      c.Value = Replace(c.Value, Chr (160), "")
    Next
    .SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
  End With
End Sub

Hice la prueba en tu archivo y funciona. No olvides la valoración.

Dante nuevamente mil gracias eres una luz en la oscuridad.

Encantado de ayudarte, gracias por los comentarios. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas