Crear una macro donde cambien espacios por nueves.

29/11/2006 - 12:07 por Claudi | Informe spam
Buenas!

Queria crear una macro donde substituiese las casillas donde hay
espacios por nueves.

Pues lo primero que hice fue gravar una macro con reemplazar i tenia k
poner la siguiente instrucción:

Range("A1:C8640").Select
Range("C8640").Activate
Selection.Replace What:="", Replacement:="999999",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False, _
ReplaceFormat:=False


Bueno, parecia k todo estava bien pero me surjió un problema. Para las
tablas con datos en blanco a partir de cierto numero, no rellena con
nueves. Vale, hice otra macro i me salió esto:

Range("A1:C8640").Select
Range("C8640").Activate
ActiveCell.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Bueno, con esto parecia solucionado el problema y va a ser k no. Parece
que la rutina esta no funciona si la ultima casilla (C8640) esta llena.
Pues no me resigne i hice el siguiente if:

If Range("C8640") = "" Then
Range("A1:C8640").Select
Range("C8640").Activate
ActiveCell.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
Range("A1:C8640").Select
Range("C8640").Activate
Selection.Replace What:="", Replacement:="999999",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False, _
ReplaceFormat:=False
End If


OK! Pues va a ser k NO. Quando aplico la rutina anterior no rellena los
espacios en blanco del caso que la tabla no esta llena asta 8640. JUER!

En un acto de desesperación puse un STOP en la primera rutina i li
hice manualmente con el reemplazar. Me gustaria si alguna mente
caritativa me hayudase!


MUCHAS GRACIAS!!!!!!!!!!!
 

Leer las respuestas

#1 Peluchon
29/11/2006 - 14:42 | Informe spam
si pones nada más

Range("a1:c8640").Select
Selection.Replace What:=" ", Replacement:="9", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

no te funciona?


Claudi ha escrito:

Buenas!

Queria crear una macro donde substituiese las casillas donde hay
espacios por nueves.

Pues lo primero que hice fue gravar una macro con reemplazar i tenia k
poner la siguiente instrucción:

Range("A1:C8640").Select
Range("C8640").Activate
Selection.Replace What:="", Replacement:="999999",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False, _
ReplaceFormat:=False


Bueno, parecia k todo estava bien pero me surjió un problema. Para las
tablas con datos en blanco a partir de cierto numero, no rellena con
nueves. Vale, hice otra macro i me salió esto:

Range("A1:C8640").Select
Range("C8640").Activate
ActiveCell.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Bueno, con esto parecia solucionado el problema y va a ser k no. Parece
que la rutina esta no funciona si la ultima casilla (C8640) esta llena.
Pues no me resigne i hice el siguiente if:

If Range("C8640") = "" Then
Range("A1:C8640").Select
Range("C8640").Activate
ActiveCell.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Replace What:="", Replacement:="999999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
Range("A1:C8640").Select
Range("C8640").Activate
Selection.Replace What:="", Replacement:="999999",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False, _
ReplaceFormat:=False
End If


OK! Pues va a ser k NO. Quando aplico la rutina anterior no rellena los
espacios en blanco del caso que la tabla no esta llena asta 8640. JUER!

En un acto de desesperación puse un STOP en la primera rutina i li
hice manualmente con el reemplazar. Me gustaria si alguna mente
caritativa me hayudase!


MUCHAS GRACIAS!!!!!!!!!!!

Preguntas similares