Formato De Celda

25/05/2005 - 01:43 por Mauro Jesús | Informe spam
Saludos a todos.
Tengo una Tengo una duda que espero me ayuden a resolver.
Tengo una hoja de excel en la cual a ciertas celdas le he dado formato
numerico a otras celdas formato de fracciones. esto para que los datos que
capture el usuario se muestren con estos formatos, ahora bien los datos que
el usuario teclea, los almaceno en una b.d. mi problema es que al recuperar
los datos desde la b.d. y colocarlos en las celdas del libro, me muestra los
datos pero sin el formato de cada celda, he pensado en darle formato a la
celda en el momento en que le asigno el valor de la b.d., pero necesito que
el formato sea igual al que tiene la predefinido celda, algo así como format
(hoja1.cells(x,y), "formato predefinido de la celda x,y de la hoja 1")

Espero haberme explicado y agradezco desde ya sus comentarios y/o
sugerencias.

Cuando se quiere saber una cosa, lo mejor que se puede hacer después de
investigar, es preguntarla a los que saben,
porque aquel que no sabe nada, no duda de nada.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/05/2005 - 10:05 | Informe spam
hola, Mauro !

... a ciertas celdas le he dado formato numerico a otras... de fracciones
... los datos que el usuario teclea, los almaceno en una b.d.
... problema... al recuperar... desde la b.d. y colocarlos en las celdas... muestra los datos pero sin el formato [...]



me da la impresion de que estas usando formularios / textboxes para el 'toma-y-pon' de los datos a/de celdas/bd -?-
[probablemente] estan los textboxes 'vinculados' a dichas celdas ???
[quizas/tambien] estas usando propiedades como '.Text' para tomar/depositar los datos 'recuperados' ???
[con cualquiera de las 'formas' anteriores se pierden los formatos de las celdas] :-(
serviria si comentas que/como/de_donde/a_donde/... estas usando actualmente
[y donde consideras que esta ocurriendo 'la falla'] ;)

saludos,
hector.
Respuesta Responder a este mensaje
#2 Mauro Jesús
25/05/2005 - 16:59 | Informe spam
Te explico mas a detalle hector.

Tengo unas celdas 5 filas x 10 columnas (hoja de excel) en la cuales el
usuario introduce datos.
toda la fila 1 tiene formato numerico a 4 decimales. la fila 2 tiene formato
moneda, la fila 3 formato en fracciones, las fila 4 y 5 formato de texto.
Ahora bien, los valores que introduce el usuario, se almacenan en una b.d.
de access y no en la hoja de excel..
El asunto está en si por ejemplo el usuario teclea 0.25 en la fila 3, el
valor se convierte en 1/4 pero en la b.d. se guarda el valor de 0.25 (lo
cual no es ese el problema), el problema está en que si el usuario abre el
libro y en base a un número de orden que selecciona, le muestro los datos
correspondientes (capturados anteriormente) pero los valores que jalo de la
b.d. para colocarlos en las celdas, me aparecen "tal cual" (por ejemplo 0.25
cuando deberia mostrarse como 1/4) como fueron almacenados y necesito que
los datos aparezcan con el formato que tiene cada celda, me imagino algo
asi como:

1.- selecciono la celda
2.- coloco el valor
3.- aplicar formato predefinido


Nota: me he dado cuenta que después de colocar el valor en la celda y si
selecciono esa celda y me paso a otra celda, automaticamente se aplica el
formato de la celda. esto es, tengo en una celda 0.25 y me posiciono en esta
celda y me paso a otra, cambia de 0.25 a 1/4, lo cual quiero evitar que el
usuario haga ese "barrido" en las celdas.
Respuesta Responder a este mensaje
#3 Mauro Jesús
25/05/2005 - 17:12 | Informe spam
Se me olvidaba, la captura se hace directamente en las celdas de excel y no
en un formulario, guardo el valor a la b.d. cuando ocurre el evento
worksheet_seleccionChange de la hoja.

Cuando se quiere saber una cosa, lo mejor que se puede hacer después de
investigar, es preguntarla a los que saben,
porque aquel que no sabe nada, no duda de nada.
Respuesta Responder a este mensaje
#4 Héctor Miguel
25/05/2005 - 19:34 | Informe spam
hola, Mauro 1

... 5 filas x 10 columnas... en la cuales el usuario introduce datos.
... fila 1... formato numerico a 4 decimales... fila 2... moneda... fila 3... fracciones, las fila 4 y 5 formato de texto.
... los valores que introduce el usuario, se almacenan en una b.d. de access
... el problema esta en que si el usuario abre el libro y en base a un numero de orden que selecciona
... muestro los datos correspondientes (capturados anteriormente)
... los valores que jalo de la b.d. para colocarlos en las celdas, me aparecen "tal cual"
... (por ejemplo 0.25 cuando deberia mostrarse como 1/4) como fueron almacenados
... necesito que los datos aparezcan con el formato que tiene cada celda [...]



[primero] considera que los formatos 'son' una 'mascara' de como se muestran los valores 'reales' de las celdas
[en tanto no sean 'depositados' en dichas celdas ->con su formato<-... son mostrados 'tal cual']
[segundo] sera necesario que proporciones detalles mas 'apegados a la forma' que estas usando [p.e.]
-> como y en donde selecciona el usuario el numero de orden ?
-> de que manera 'le muestras' los datos correspondientes [capturados anteriormente] ? msgbox? otro ?
-> cual es la forma que te permite 'identificar' a que celda/fila/formato/... corresponde el dato mostrado ?
-> podrias transcribir el codigo 'relacionado' con los sucesos ? [evento, otras macros, ...]

saludos,
hector.
Respuesta Responder a este mensaje
#5 Mauro Jesús
25/05/2005 - 21:47 | Informe spam
la estructura en excel es la siguiente
COLUMNA 1 (A) COLUMNA 2 (b)
COLUMNA "N"
FILA1 maquina M001
FILA2 operador DGA
FILA3 fecha 22/05/05
FILA4 hora 10:32 AM
FILA5 LONG1 1/4
FILA6 LONG2 5.2460
FILA7 COSTO $23.52
FILA8 RESULTADO LIBERADO

el usuario captura un dato en excel según la celda en la que estée (por
ejemplo en fila 5 columna "X" si teclea .25, al dar enter o cambiarse de
celda, el valor cambia a 1/4 (por el formato predefinido para toda esa fila)
el cual guardo en la b.d. (se guarda como 0.25) ahora bien si el usuario
cierra el libro y después lo abre para seguir capturando, le regreso los
datos que capturó anteriormente, (los datos se los reflejo en la hoja de
excel)
Dependiendo del numero de muestras capturadas, es el numero de columnas en
donde muestro las datos en la hoja de excel.
Este es el código

Sub MostrarDatosProc(intInicioRango As Integer)
Set RcsDbT = Nothing
' SLECCIONA LOS DATOS DONDE LA ORDEN Y EL PROCESO SEAN LOS MISMOS A LOS
SELE-
' CCIONADOS EN EL FORMULARIO
Set RcsDbT = ConBdFamilia.Execute("SELECT * FROM INSTRUCTIVO" & intHoja
& " WHERE NOORDEN='" & Orden & "' AND PROCESO='" & Proceso & "' ORDER BY
MTA ")
' SI YA HAY DATOS ALMACENADOS LLENA LAS COLUMNAS CORRESPONDIENTES SEGUN
EL
' PROCESO
While Not RcsDbT.EOF
' LA COLUMNA A LLENAR DEPENDE DEL NUMERO DE LA MUESTRA
' LLENA LOS DATOS DE LOS ENCABEZADOS DE LA TABLA DE PROCESO
intColumna = 19 + Val(RcsDbT!MTA) ' inicia en la columna 20 y va
incrementando de 1 en 1
ActiveSheet.Cells(intFilaOper - 2, intColumna) = RcsDbT!Maq
ActiveSheet.Cells(intFilaOper, intColumna) = RcsDbT!OP
ActiveSheet.Cells(intFilaFecha, intColumna) = Format(RcsDbT!Fecha,
"dd-Mmm-yyyy")
ActiveSheet.Cells(intFilaHora, intColumna) = Format(RcsDbT!Hora,
"HH:MM AMPM")
' DESPUES LLENA LOS DATOS CAPTURADOS ANTERIORMENTE Y COMPARA PARA
SABER
' EL COLOR DEL TEXTO QUE SE DEBE APLICAR
' este for es el que carga los datos según el número de muestras que
trae la b.d. para el ejemplo de arriba, hace el ciclo de la fila 5 a la fila
8
For x = intInicioRango To intFilaMax - intFilaMin + intInicioRango
If RcsDbT.Fields(x) <> 0 And RcsDbT.Fields(x) <> "0" Then
' asigno el valor a la celda con la siguiente linea la cual
me muestra el valor de la b.d. pero sin el formato predefinido de la celda
ActiveSheet.Cells(intFilaMin + x - intInicioRango,
intColumna) = RcsDbT.Fields(x)
' posicion hacia la siguiente fila
intFila = intFilaMin + x - intInicioRango
Call Compara 'funcion para comparar el valor con un
rango y define el color del texto
End If
Next x ' repite el ciclo como campos numericos haya en la b.d.
RcsDbT.MoveNext
Wend
' ESTABLECE LA COLUMNA EN DONDE SE HA DE INICIAR LA CAPTURA, ESTA
DEPENDE DEL
' NUMERO DE LA MUESTRA
' SI NO ES LA PRIMERA CAPTURA DEL PROCESO
If RcsDbT.RecordCount <> 0 Then
RcsDbT.MoveLast
intColumna = 20 + Val(RcsDbT!MTA) ' establece la columna inicial
' SI ES LA PRIMERA CAPTURA DEL PROCESO LA ENVIA A LA COLUMNA
CORRESPONDIENTE
Else
intColumna = 20
End If
Set RcsDbT = Nothing
intFila = intFilaMin 'establece la intFila inicial
' selecciona la celda a donde se ha de introducir el nuevo valor
ActiveSheet.Range(Cells(intFilaMin, intColumna), Cells(intFilaMin,
intColumna)).Select
End Sub

lo de seleccionar orden lo hace en un form. y en base a esté es como ejecuto
esta funcion.
Esto de cargar los datos y mostrarlos en la hoja de excel lo hace bien lo
unico que en lugar de mostrarme en la celda el valor con el formato
predefinido a la celda, me muestra el valor como viene en la b.d.
Cuando se quiere saber una cosa, lo mejor que se puede hacer después de
investigar, es preguntarla a los que saben,
porque aquel que no sabe nada, no duda de nada.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida