Saltar al contenido

Macro Eliminar Valor en Celdas Combinadas


Recommended Posts

publicado

Buenas tardes.

Me podrían apoyar por favor en darme una guía de como puedo obtener lo siguiente: tengo una macro que recorre la fila 1 hasta el último dato.. ejemplo A1 hasta AA1. Lo que trato de hacer es que si el valor es mayor a 3 letras entonces me limpie el contenido, pero cuando se encuentra con celdas combinadas me marca error. No puedo eliminar las celdas combinadas, porque me descuadraría mi archivo.

Sub Eliminar_texto()
Dim lc As Long, col As Long
lc = Cells(1, Columns.Count).End(xlToLeft).Column
   For col = 1 To lc
      If Len(Cells(1, col).Value > 3) Then Cells(1, col).ClearContents
   Next
End Sub

Gracias por la ayuda y su tiempo. ☺️

MiEjemplo.xlsx

publicado
Hace 6 horas, LaFlower dijo:

cuando se encuentra con celdas combinadas me marca error

las celdas "combinadas" suelen llegar a convertirse en "una espina en..." (donde no puedes permanecer cómodamente sentad@)

- estorban a la navegación por la hoja (incluso por macros)
- no puedes usar (p.ej.) en .ClearContents (que te dice el mensaje de error ?)
- (a menos que identifiques que son celdas combinadas y "afectes" -solo- a la primer celda del área combinada)

lo que si puedes usar es cambiar "su valor" por... nada ( = "" ) o ( = empty)
p.ej. cambia tu procedimiento a...

Sub Eliminar_texto()
  Dim lc As Long, col As Long
  lc = Cells(1, Columns.Count).End(xlToLeft).Column
  For col = 1 To lc
    If Len(Cells(1, col).Value > 3) Then Cells(1, col) = Empty
  Next
End Sub

moraleja: cuídate de las celdas "combinadas"

publicado

Hola.

También lo puedes intentar con:

 

Sub Borrar()
Dim r As Range
Dim col As Long
Dim lc As Long

    lc = Cells(1, Columns.Count).End(xlToLeft).Column
    For col = 1 To lc
        Set r = Cells(1, col).MergeArea
        If Len(r.Cells(1, 1)) > 3 Then r.ClearContents
        col = col + r.Columns.Count - 1
    Next
    
End Sub

He cambiado la condición porque tal y como está la original, borraría todas las celdas y supongo que sólo debe hacerlo si tienen más de 3 caractéres.

 

Un saludo.

publicado

@Héctor Miguel, muchas gracias por tomarte el tiempo para poder ayudarme; tienes toda la razón trabajar con celdas combinas es un dolor de cabeza ?

Respecto al código que me compartes realice pruebas, pero me borraba toda la información no me respetaba si la celda tenía más de 3 letras. Sin embargo, agradezco infinitamente tu noble intensión.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.