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!!!!!!!!!!!

Preguntas similare

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!!!!!!!!!!!
Respuesta Responder a este mensaje
#2 Claudi
29/11/2006 - 16:36 | Informe spam
Peluchon ha escrito:

si pones nada más

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

no te funciona?




Pues va a ser que no!
Respuesta Responder a este mensaje
#3 Peluchon
01/12/2006 - 15:24 | Informe spam
Pues no se porqué no te funciona, yo lo pruebo con Excel 2000 y me
funciona perfectamente
Claudi ha escrito:

Peluchon ha escrito:

> si pones nada más
>
> Range("a1:c8640").Select
> Selection.Replace What:=" ", Replacement:="9", LookAt:=xlPart, _
> SearchOrder:=xlByRows, MatchCase:=False
>
> no te funciona?


Pues va a ser que no!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida