Office - Quitar blancos que se anteponen a la cadena de car

 
Vista:

Quitar blancos que se anteponen a la cadena de car

Publicado por Mónica MP (2 intervenciones) el 22/04/2006 02:55:32
Por favor si alguien me puede ayudar. Me entregan en Excel una base de datos que se extrajo de un sistema. Para trabajar estos datos en Excel me encuentro con el problema que las celdas con información alfanumérica (por ej nombres, direcciones etc), traen una cantidad “variable” (entre 0 y 3) de espacios en blanco antecediendo al texto lo cual no me permite filtrar ni ordenar debidamente.
Tengo la siguiente macro que me permite separar nombre y apellido cuando están juntos en una columna y dejarlos en columnas separadas:

Sub separa()
x = ActiveCell.Row
y = ActiveCell.Column
'Esto que sigue, toma el nombre y lo lleva 2 cols a la derecha
Do While Cells(x, y).Value <> ""
Cells(x, y + 2).Value = "=MID(RC[-2],1,SEARCH("" "",RC[-2],1)-1)"
'Para tomar el apellido y llevarlo 3 cols a la derecha
Cells(x, y + 3).Value = "=MID(RC[-3],SEARCH("" "",RC[-3],1)+1,20)"
x = x + 1
Loop
End Sub

Quería adaptarla pero veo que contrario a buscar el primer blanco que es lo que hago en esta macro, tengo que buscar el primer caracter “distinto” de blanco para conseguir contar los blancos que se anteponen y así extraerlos, pero no sé como indicarlo en la función search. ¿Habrá otra forma de hacerlo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Quitar blancos que se anteponen a la cadena de

Publicado por JuanC (34 intervenciones) el 22/04/2006 14:46:10
Creo q el siguiente código hace lo q necesitás...

Sub separa2()
x = ActiveCell.Row
y = ActiveCell.Column

Do While Cells(x, y).Value <> ""
s = Trim(Cells(x, y).Value)
Cells(x, y + 2).Value = Mid(s, 1, InStr(s, " ") - 1)
Cells(x, y + 3).Value = Mid(s, InStr(s, " ") + 1)
x = x + 1
Loop
End Sub

Saludos y buena suerte, desde Buenos Aires, JuanC

Cualquier consulta ahí tienes mi mail...

PD: la próxima preguntá este tipo de cosas en la sección VBA o Excel
para tener más posibilidades... ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Quitar blancos que se anteponen a la cadena de

Publicado por Mónica MP (2 intervenciones) el 24/04/2006 01:13:41
Juan:
Te agradezco mucho resolviste mi problema y además aprendí cosas nuevas. Lo que realmente necesitaba era la función TRIM que la había usado hace mucho y la tenía olvidada. Ya que solo quería sacar espacios en blanco que venían al frente de cada dato y no en todas las líneas igual (algunas con ninguno, otras con dos o tres, etc.), lo que usé fué lo siguiente:
Sub Ajustaralaizq()
x = ActiveCell.Row
y = ActiveCell.Column

Do While Cells(x, y).Value <> ""
s = Trim(Cells(x, y).Value)
Cells(x, y + 2).Value = s
x = x + 1
Loop

End Sub

Gracias además por tu consejo respecto al foro
Te saluda,
Mónica desde Santiago
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar