VBA Eliminar caracteres de una celda dependiendo del numero de caracteres

Me gustaría saber el código de vba para borrar el contenido de las celdas si no cumplen una función ( si tiene menos de 5 caracteres eliminar el contenido) ejemplo:

AZ1: 3000

AZ2: 609120230000537

AZ3: 609472001000349

AZ4: 50913

AZ5: 609100010003612

Para que quede así

AZ1: 609120230000537

AZ2: 609472001000349

AZ3: 609100010003612

2 Respuestas

Respuesta
1

Acá tienes ejemplos para trabajar con cadenas de caracteres

https://www.youtube.com/playlist?list=PLdK9H5dMIfQhE67SvbFMqsAXDaDTpN4uY

https://www.youtube.com/watch?v=25Yyv-tNgug&list=PLdK9H5dMIfQiz99T-5wsxbEIHpi1s7s6S 

Fíjate en ese ejemplo se determina la cantidad de caracteres para dar el nombre a un archivo es lo mismo que necesitas

cantidadCaracteres=Len(range("A1"))

Con el código anteriores determinas el largo de la cadena de caracteres del contenido en A1

Puedes poner

If cantidadCaracteres>=5 then range("A1").clear

Con el código anterior si la cadena de caracteres es mayor o = 5 borra el contenido de A1.

Respuesta
1

Prueba la siguiente:

Sub EliminarCelda()
  Dim i As Long
  Application.ScreenUpdating = False
  For i = Range("AZ" & Rows.Count).End(3).Row To 1 Step -1
    If Len(Range("AZ" & i).Value) <= 5 Then Range("AZ" & i).Delete xlUp
  Next
End Sub

Hola buenas noches, disculpa creo que cuando corro el vba se traba y ya no sale nada ... :(

Muchas gracias por ayudarme.

¿Cuántos datos tienes?

Prueba con esta macro:

Sub EliminarCelda()
  Dim a As Variant, b As Variant
  Dim i As Long, j As Long
  a = Range("AZ1", Range("AZ" & Rows.Count).End(3)).Value2
  ReDim b(1 To UBound(a), 1 To 1)
  For i = 1 To UBound(a)
    If Len(a(i, 1)) > 5 Then
      j = j + 1
      b(j, 1) = a(i, 1)
    End If
  Next
  Range("AZ1").Resize(UBound(b)).Value = b
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas