Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Macro Eliminar Valor en Celdas Combinadas

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

Featured Replies

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
  • Autor

@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.

publicado
  • Autor

@qwerty123: muchísimas gracias la solución que me pasaste funciona perfecto. Muy agradecida por su tiempo y conocimiento. 

Archivado

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.