Macro Eliminar espacios excesivos en Excel

Twittear este post

 Compartir en Facebook

La siguiente macro permite eliminar los espacios iniciales, finales y los excesivos de las celdas del rango elegido. La función que permite realizar lo mismo es RECORTAR, pero se limita a celda individuales.

Permite dejar textos como:

“  Prueba   de   texto” = “Prueba de texto”

Macro:

Sub EXCELeINFODeleteExcesiveSpaces()
Application.StatusBar = "Eliminando espacios iniciales, finales y excesivos..."
Application.StatusBar = ActiveCell.Address
    For Each celda In Selection
celda.Value = WorksheetFunction.Trim(celda)
Next celda
Application.StatusBar = False
End Sub

You may also like...

6 Responses

  1. Buen dia

    en la linea Application.StatusBar = “Eliminando espacios iniciales, finales y excesivos…”

    marca error de ejecuciion.. que otros datos hacen falta para que corra por completo

    saludos

    • sergioacamposh says:

      Es extraño que te marque error en esa línea, ya que la macro está probada que funciona. Te recomiendo que valides que al copiar y pegar en tu IDE de vba, las comillas (“”) no te las sustitiya por otro caracter. En todo caso, prueba la macro eliminado la línea.

  2. Diego Salamanca says:

    Muchas Gracias sirvio de lujo….. Uds siempre me han sacado de aputos me gustaria entender un poco mas la interpretacion tenia un codigo que crei hacia eso pero no se en donde estaba la falla es este

    Range(“B2”).Select

    Do Until ActiveCell.Offset(0, -1).Value = “”
    Dim celda As string
    celda=activecell.value
    activecell.value = “=TRIM(celda)
    ActiveCell.Offset(1, 0).Select
    Loop

    me gustaria que me dijeran cual es el error en esta y como es que funciona eso de WorksheetFunction y porque toca hacerlo con un For Each

    • El error es que está tomando en cuenta otra columna diferente a B, además de que cuando recorre las celdas les ingresa el valor “=TRIM(celda)”. Esta función recorre todas las celdas de la columna B siempre y cuando no estén vacías, pero se vuelve complicada cuando se elije un rango mucho mayor.

      La macro que agrego usa el For each para tome en cuenta ‘cada celda’ del rango elegido, además usa el Worksheetfunction para usar las funciones de Excel en su versión en inglés.

  3. Alfredo says:

    Muchas gracias!!!!

    Una pregunta en relación a este código como seria el código para que seleccionara de manera automatica el rango de celdas sin tener que seleccionar con el mouse por favor

    • sergioacamposh says:

      El siguiente código te puede servir para elegir las celdas en uso de tu hoja:

      ActiveSheet.UsedRange.Select

Leave a Reply

Your email address will not be published.

%d bloggers like this: