Macro Eliminar espacios excesivos en Excel

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
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
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.
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.
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
El siguiente código te puede servir para elegir las celdas en uso de tu hoja:
ActiveSheet.UsedRange.Select