Compartir a través de

Eliminar ceros

Anónimas
2023-08-04T02:52:02+00:00

Estimados amigos del foro un saludo para todos, mi consulta es como poder eliminar los ceros que están solos (0) en cada celda sin que elimine los ceros de los ceros acompañados de otros números marcados de amarillo (42902570) estoy trabajando una gran base de datos y el buscar y reemplazar no me sirve ya que me afecta las celdas que no deseo reemplazar (amarillas) y me deja incompletos los demás números.

Mil gracias desde ya.

Esto lo trabajo en

Excel® para Microsoft 365 MSO (versión 2307 compilación 16.0.16626.20086) de 64 bits

Comparto archivo de ejemplo

ejemplo.xlsx

Microsoft 365 y Office | Excel | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios
Respuesta aceptada por el autor de la pregunta
  1. Héctor Miguel 71,595 Puntos de reputación
    2023-08-08T01:13:32+00:00

    ... me lanza el siguiente error.

    Imagen.

    significa que tus datos no son entrada directa en las celdas, sino formulas (entonces)...

    cambia esta parte:

      With Selection.SpecialCells(2, 1)
    

    por esto:

      With Selection.SpecialCells(-4123, 1)
    
    1 persona ha encontrado útil esta respuesta.
    0 comentarios No hay comentarios

7 respuestas adicionales

Ordenar por: Muy útil
  1. Héctor Miguel 71,595 Puntos de reputación
    2023-08-05T00:00:45+00:00

    ... modificando el macro indicándole que se ejecute en las siguientes condiciones, rango de celdas seleccionadas, filas seleccionadas, columnas seleccionadas...

    ok, selecciona cualquier rango de celdas (pueden ser varios no contiguos) y...

    solo cambia esta linea:

      With [b2].CurrentRegion.SpecialCells(2, 1): Set celda = .Find(0, , xlValues, 1)
    

    por esto:

      With Selection.SpecialCells(2, 1): Set celda = .Find(0, , xlValues, 1)
    
    0 comentarios No hay comentarios
  2. Anónimas
    2023-08-04T23:21:27+00:00

    Muchas gracias mi estimado HM un gusto saber de ti después de años, mil disculpas por mi atrevimiento pero no manejo programación de macros es posible me ayude modificando el macro indicándole que se ejecute en las siguientes condiciones, rango de celdas seleccionadas, filas seleccionadas, columnas seleccionadas, esto debido a la cantidad de datos de la base y de las celdas que contienen información adicional las cuales no deseo afectar.

    Desde ya muchas gracias

    saludos.

    0 comentarios No hay comentarios
  3. Anónimas
    2023-08-04T13:16:38+00:00

    puedes hacerlo de este modo con un formato personalizado o cambiando esta opción:

    0 comentarios No hay comentarios
  4. Héctor Miguel 71,595 Puntos de reputación
    2023-08-04T03:29:10+00:00

    asumiendo que se trata de un rango contiguo, copia > pega (o escribe) lo siguiente en un modulo de codigo estandar:

    Sub eliminaCeros(): Dim celda As Range, ceros As Range, inicial As String 
    
      With [b2].CurrentRegion.SpecialCells(2, 1): Set celda = .Find(0, , xlValues, 1) 
    
        If Not celda Is Nothing Then 
    
          Set ceros = celda: inicial = celda.Address 
    
          Do: Set ceros = Union(ceros, celda): Set celda = .FindNext(celda) 
    
          Loop While Not ceros Is Nothing And celda.Address <> inicial 
    
        End If: End With 
    
      If Not ceros Is Nothing Then ceros.ClearContents: Set ceros = Nothing 
    
    End Sub
    

    si la region actual no se detecta desde [B2], cambia la celda de arranque

    0 comentarios No hay comentarios