Modificar macro para eliminar otros registros ademas de 0

Tengo la siguiente macro que elimina los valores 0 y celdas vacias pro necesito que tambien elimine los numerps del 1 al 199 y las siguientes plabras

Beti Jai

Pastas

Light

Clasico

Clásico

PBT Jamon y queso

PBT Salame y queso

PBT JAMON Y QUESO

Bife de pollo con arroz

Bife de pollo con papas

Bife de pollo con pure

Sandw milanesa con papas

Sandw suprema con papas

Ensalada Caesar

Ensalada especial

Milanesa de soja con arroz

Milanesa de soja con pure

Canastitas

¿Es esto posible?

1 respuesta

Respuesta
2

Puedes poner la macro.

La imagen de cómo están tus datos

Y otra imagen con el resultado que quieres.

En resumen solo necesito que queden solo los nombres propios sion números ni menu

Cambia en la macro "nombres" por el nombre de tu hoja.

Te paso la macro:

Sub EliminarNumeros()
  Dim sh As Worksheet
  Dim a As Variant, b As Variant
  Dim lr As Long, lc As Long, i As Long, j As Long, x As Long, y As Long
  '
  Set sh = Sheets("Nombres")    'nombre de tu hoja
  '
  lr = sh.UsedRange.Rows(sh.UsedRange.Rows.Count).Row
  lc = sh.UsedRange.Columns(sh.UsedRange.Columns.Count).Column
  a = sh.Range("B1", sh.Cells(lr, lc)).Value
  ReDim b(1 To UBound(a, 1), 1 To UBound(a, 2))
  For j = 1 To UBound(a, 2)
    x = 0
    For i = 1 To UBound(a, 1)
      If a(i, j) <> "" And a(i, j) <> 0 And Not IsNumeric(a(i, j)) Then
        x = x + 1
        b(x, j) = a(i, j)
      End If
    Next
  Next
  sh.Range("B1").Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub

¿

También elimina estas palabras?

Beti Jai

Pastas

Light

Clásico

Clásico

PBT Jamón y queso

PBT Salame y queso

PBT JAMÓN Y QUESO

Bife de pollo con arroz

Bife de pollo con papas

Bife de pollo con pure

Sandw milanesa con papas

Sandw suprema con papas

Ensalada Caesar

Ensalada especial

Milanesa de soja con arroz

Milanesa de soja con pure

Canastitas

"¿También elimina estas palabras?"

No entiendo. Tu petición es borrar números.

Puedes explicar con claridad qué necesitas. No es suficiente con poner: "¿También elimina estas palabras?"

Pon ejemplos con imágenes.

Si es otra petición, ya sabes que debes valorar esta respuesta y crear una nueva.

Ya entendí lo de las palabras.

Prueba esta macro:

Sub EliminarNumeros()
  Dim sh As Worksheet
  Dim a As Variant, b As Variant, arr As Variant, itm As Variant
  Dim lr As Long, lc As Long, i As Long, j As Long, x As Long, y As Long
  Dim esta As Boolean
  '
  arr = Array( _
              "Beti Jai", _
              "Pastas", _
              "Light", _
              "Clasico", _
              "Clásico", _
              "PBT Jamon y queso", _
              "PBT Salame y queso", _
              "PBT JAMON Y QUESO", _
              "Bife de pollo con arroz", _
              "Bife de pollo con papas", _
              "Bife de pollo con pure", _
              "Sandw milanesa con papas", _
              "Sandw suprema con papas", _
              "Ensalada Caesar", _
              "Ensalada especial", _
              "Milanesa de soja con arroz", _
              "Milanesa de soja con pure", _
              "Canastitas")
  '
  Set sh = Sheets("Nombres")    'nombre de tu hoja
  '
  lr = sh.UsedRange.Rows(sh.UsedRange.Rows.Count).Row
  lc = sh.UsedRange.Columns(sh.UsedRange.Columns.Count).Column
  a = sh.Range("B1", sh.Cells(lr, lc)).Value
  ReDim b(1 To UBound(a, 1), 1 To UBound(a, 2))
  For j = 1 To UBound(a, 2)
    x = 0
    For i = 1 To UBound(a, 1)
      esta = False
      For Each itm In arr
        If LCase(a(i, j)) = LCase(itm) Then
          esta = True
          Exit For
        End If
      Next
      If a(i, j) <> "" And a(i, j) <> 0 And Not IsNumeric(a(i, j)) And esta = False Then
        x = x + 1
        b(x, j) = a(i, j)
      End If
    Next
  Next
  sh.Range("B1").Resize(UBound(b, 1), UBound(b, 2)).Value = b
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas