Guardar número con formato condicional

15/05/2008 - 23:40 por César G. | Informe spam
Hola a todos

Les expongo mi consulta, tengo una macro para exportar los datos de una
hoja de excel a un archivo de texto plano, hasta aquí todo bien, pero mi
inquietud es debido a que en algunos casos me interesa guardar no solo el
valor, sino también el formato.

Por ejemplo si en la columna C tengo datos como "02" "05" etc, quisiera que
se guardara con el "0" que tiene a la izquierda y no solo el valor de la
celda porque me lo toma como 2 y 5

En otros casos tengo números como "015338801112" y el valor de la ceda lo
toma como "15338801112" aunque en el futuro puede variar y encontrarse en
columnas diferentes y quisiera que en la macro pudiera tomar en cuenta el
formato de la celda sin tener que modificar el codigo fuente cada vez.

Espero que esta explicación sea clara para que puedan auxiliarme.

Muchas gracias.

César Galicia

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
16/05/2008 - 05:03 | Informe spam
hola, César 1

... tengo una macro para exportar los datos de una hoja... a un archivo de texto plano
... en algunos casos me interesa guardar no solo el valor, sino tambien el formato.
... si... tengo datos como "02" "05" etc, quisiera que se guardara con el "0" que tiene a la izquierda
y no solo el valor de la celda porque me lo toma como 2 y 5 (...)



(segun parece) tienes aplicados formatos personalizadso para que "se vea" como 02, 05, etc.
pero... el contenido "real" de tus celdas es (simplemente) el numero: 2, 5, etc.

si lo anterior es acertado... una alternativa pudiera ser una macro que pase la propiedad ".Text" de las celdas
lo que dejaria el formato personalizado "incluido" (en lugar de tomar la propiedad ".Value" por omision) -?-

en la pagina de J.E. McGimpsey:
-> Saving XL files as Text/CSV: http://www.mcgimpsey.com/excel/textfiles.html
encuentras macros "genericas" para hacer este tipo de operaciones
nota que tiene instrucciones del tipo: For Each myField In ...
donde el "valor" que se transfiere al archivo de texto es: ... myField.Text

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 César G.
16/05/2008 - 17:28 | Informe spam
Hola Hector Miguel

Muchas gracias por tu sugerencia, he logrado obtener el resultado deseado,
empero ¿existe alguna forma de verificar si la celda que se esta "leyendo"
tiene algun formato personalizado y tratarlo en consecuencia?

Solo es para realilzarlo de manera automática y que el usuario de esta macro
no necesite especificarlo antes de ejecutarla.

Una vez más gracias

César G.


"Héctor Miguel" escribió en el mensaje
news:
hola, César 1

... tengo una macro para exportar los datos de una hoja... a un archivo
de texto plano
... en algunos casos me interesa guardar no solo el valor, sino tambien
el formato.
... si... tengo datos como "02" "05" etc, quisiera que se guardara con el
"0" que tiene a la izquierda
y no solo el valor de la celda porque me lo toma como 2 y 5 (...)



(segun parece) tienes aplicados formatos personalizadso para que "se vea"
como 02, 05, etc.
pero... el contenido "real" de tus celdas es (simplemente) el numero: 2,
5, etc.

si lo anterior es acertado... una alternativa pudiera ser una macro que
pase la propiedad ".Text" de las celdas
lo que dejaria el formato personalizado "incluido" (en lugar de tomar la
propiedad ".Value" por omision) -?-

en la pagina de J.E. McGimpsey:
-> Saving XL files as Text/CSV:
http://www.mcgimpsey.com/excel/textfiles.html
encuentras macros "genericas" para hacer este tipo de operaciones
nota que tiene instrucciones del tipo: For Each myField In ...
donde el "valor" que se transfiere al archivo de texto es: ...
myField.Text

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
16/05/2008 - 17:52 | Informe spam
hola, César !

... existe alguna forma de verificar si la celda que se esta "leyendo" tiene algun formato personalizado y tratarlo en consecuencia?
Solo es para realilzarlo de manera automatica y que el usuario de esta macro no necesite especificarlo antes de ejecutarla...



1) no creo necesario detectar si "la celda" tiene aplicado algun formato numerico personalizado...
si ya estas pasando a un archivo (de texto) la propiedad .Text de la celda que estas "leyendo"...

2) la propiedad .NumberFormat devuelve una cadena de texto con el formato numerico de "la celda" (personalizado o no)
pero... necesitas saber (exactamente) cual formato personalizado (de estar aplicado) seria sujeto de "tratarlo en consecuencia"

3) o (seguramente) no acabo de entender el "por que" es que el usuario "necesita especificarlo" antes de ejecutar "la macro" -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 César G.
16/05/2008 - 19:48 | Informe spam
De acuerdo contigo Hector Miguel;

Tomando en consideración que con la propiedad .Text se puede extraer el
valor de la celda con el formato personalizado, creo que es suficiente para
obtener el resultado deseado.

Lo de "actuar en consecuencia" era por si en algun momento en alguno de las
celdas tuviese valores como fechas u otros formatos que no se exportaran
correctamente.

Muchas gracias por tu apoyo


"Héctor Miguel" escribió en el mensaje
news:%
hola, César !

... existe alguna forma de verificar si la celda que se esta "leyendo"
tiene algun formato personalizado y tratarlo en consecuencia?
Solo es para realilzarlo de manera automatica y que el usuario de esta
macro no necesite especificarlo antes de ejecutarla...



1) no creo necesario detectar si "la celda" tiene aplicado algun formato
numerico personalizado...
si ya estas pasando a un archivo (de texto) la propiedad .Text de la
celda que estas "leyendo"...

2) la propiedad .NumberFormat devuelve una cadena de texto con el formato
numerico de "la celda" (personalizado o no)
pero... necesitas saber (exactamente) cual formato personalizado (de
estar aplicado) seria sujeto de "tratarlo en consecuencia"

3) o (seguramente) no acabo de entender el "por que" es que el usuario
"necesita especificarlo" antes de ejecutar "la macro" -?-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida