Línea macro para eliminar espacio sobrante

Esta tu macro

Sub EspaciosVacios_TodaHoja()
'Por.Dante Amor
    ActiveSheet.Unprotect Password:="By Jot@"
    Dim celda As Range
    For Each celda In Sheets(1).Cells.SpecialCells(xlCellTypeConstants, 23)
        celda.Value = WorksheetFunction.Trim(celda.Value)
    Next
    ActiveSheet.Protect Password:="By Jot@"
    MsgBox "Listo. limpios los espacios en inicio, intermedios y finales de las cadenas de texto", vbInformation, "Espacios"
End Sub

Funciona a millon, elimina el espacio al inicio y final de una palabra o frase, pero quiero pedirte para agregarle linea o editarla para que tambien elimine el espacio sobrante en medio de palabra o palabras dentro de una frase (si lo tiene) en el medio de una palabra. Ej: Dante  Amor es de  Onduras.

La frase Dante Amor es de Onduras tiene 2 espacios entre Dante y Amor y entre de y Onduras.

Para que elimine al inicio, al final y el sobrante entre palabras.

2 Respuestas

Respuesta
1

Para entender el resultado que esperas:

Tienes esto:

Dante Amor es de México

¿Cuál es el resultado que esperas?

Puedes poner varios ejemplos, de lo que tienes y de lo que esperas de resultado. Entre más ejemplos pongas con su respectivo resultado, será más fácil de entender lo que quieres.

Ok, gracias dante.

Tengo Dante es de México

Entre Dante y es, en ves de 1 espacio existen 2, lo mismo entre de y México, 2 espacios

Entre palabra y palabra quiero obtener lo normal; 1 solo espacio entre palabra y palabra, aunque sea una frase de 2, o más palabras

Hola Dante, nuevamente apresurado vengo a pedirte disculpas por la falla que acabo de tener,

La macro que dejo arriba, si elimina los espacios sobrantes entre palabras, en inicio y final de palabra o frase.

Creare nuevo tema para que me la pongas a que lo haga EN TODO EL LIBRO (todas las hojas) porque esta solo para la hoja1

Esta instrucción, elimina los espacios doble o triples o mayores a un espacio.

celda.Value = WorksheetFunction.Trim(celda.Value)

Si tienes:

Dante                  Amor

El resultado será:

Dante Amor



Mira mi ejemplo, se puede apreciar que entre la palabra "Dante" y la palabra "Amor" hay muchos espacios

Si pones esto:

Dante Amor

Y quieres esto:

Dante Amor

No se entiende tu ejemplo, porque el ejemplo y el resultado son iguales.

Trata de ser más explícito con los ejemplos.


Regresando a la macro, si la instrucción WorksheetFunction. Trim, no te quita los espacios, entonces no tienes el caracter espacio, lo que tienes es otro caracter, revisa qué caracter tienes y lo reemplazas por "", es decir, lo reemplazas por nada.

Sal u dos

Perfectamente entendible tu exposición pero la mía esta clara en la imagen al mostrar que hay 2 espacios entre Joao y pide, a y dante y que y es.

Ahí están las flechas apuntando a lo que son 2 espacios, donde dice cada flecha apunta a 2 espacios.

Ya eso quedo claro que si hace lo que al principiop (antes de que probara con más cuidado) creía yo que no lo hacia, pero si lo hace y siempre lo hizo, pasa que yo no lo sabia.

Ok, ya este tema esta aclarado, ahora paso al nuevo que cree

"Editar macro para que sea ejecutable en todas las hojas de un libro" porque la presente Dante, elimina los espacios pero solo en la hoja1 y no en todas que es lo que pretendo que elimine en TODAS independientemente desde la hoja que se ejecute

Tema cerrado.

Ya también te envié la macro para que lo haga en todas las hojas.

Respuesta
1

Te dejo 2 ejemplos saludos!

Opción 1

Sub espaciosvb()
'Quita Detrás del texto
'Fuente dante Amor
ufila = ActiveCell.SpecialCells(xlLastCell).Row
ucol = ActiveCell.SpecialCells(xlLastCell).Column
For i = 1 To ufila
For j = 1 To ucol
Cells(i, j).Select
ActiveCell = Trim(ActiveCell)
Next
Next
End Sub

Opción 2

Sub espacios()
'Quita todos los espacios
'Fuente dante Amor
ufila = ActiveCell.SpecialCells(xlLastCell).Row
ucol = ActiveCell.SpecialCells(xlLastCell).Column
Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas