Pegando matrices en un rango

16/11/2005 - 16:05 por Emilio | Informe spam
Hola!
estoy pegando una matriz con datos en un rango de una hoja, la matriz
(variant) contiene una columna con fechas y la otra con numeros reales. El
problema me surge cuando voy a graficar esos datos y no me muestra los datos
porque las fechas las ha pegado como cadenas de texto y no como fechas.
Cuando los datos los pego mediante un bucle y en el proceso convierto la
fecha con cDate, el gráfico queda perfecto, el problema es que son muchos
datos y a pesar de desactivar el refresco de pantalla y el recalculo, el
proceso se demora mucho.

El código que uso es el siguiente
' devolvemos los datos a la hoja
contadorT1 = UBound(Matriz, 2) + 7
Worksheets("PI Teja 1").Range("C7") = Matriz

'contadorT1 = UBound(Matriz, 2)
'For i = 0 To contadorT1
' ActiveSheet.Cells(i + 7, 3) = CDate(Matriz(0, i))
' ActiveSheet.Cells(i + 7, 4) = Matriz(1, i)
'Next

¿Habrá algún metodo para reolver este problema?

Gracias anticipadas

Saludos a tod@s
Emilio
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.com/emilio

Preguntas similare

Leer las respuestas

#1 Emilio
16/11/2005 - 19:23 | Informe spam
Gracias Luis
si, también podría recorrerlas con un bucle, pero para ese viaje ya las
pegaría con el bucle y en ese caso no gano nado, mi pregunta es por si hay
algún método que me evite eso.

Gracias de nuevo

Saludos a desde Huelva
Emilio
miliuco56 ALGARROBA hotmail.com

http://www.mvp-access.com/foro
http://www.mvp-access.com/emilio

Reglas de conducta de los grupos de noticias:
http://support.microsoft.com/defaul...newsreglas

"luis" escribió en el mensaje
news:%
Mostrar la cita
#2 Héctor Miguel
17/11/2005 - 05:18 | Informe spam
hola, Emilio !

Mostrar la cita
1) si 'el pase' de la matriz al rango 'pasa' sin problemas... -> Worksheets("PI Teja 1").Range("C7") = Matriz
2) y si la matriz es de tipo variant [que acepta -por omision- datos de todo tipo] :))
3) al momento en que vas 'llenando' la columna de fechas en la matriz... estas 'pasando' textos ? [o fechas 'reales'] -?-

-> si tuvieras 'conflictos' por sistemas de fecha y/o configuraciones regionales distintas...
[suponiendo que estas 'trabajando' con datos-fecha que 'realmente' puedan ser considerados como fechas]...
prueba 'pasandolos' a la matriz bajo una instruccion del tipo...
Matriz(colFecha, n_Fila) = CLng(CDate(dato_Fecha))

-> o [si es posible]... 'convertir' [ya en el rango] la columna texto_fecha a dato_fecha -> multiplicando el rango *1
[a menos que el dato_texto_fecha fuera totalmente una fecha 'textual'] -?-

comentas algun detalle adicional ?
saludos,
hector.
#3 Emilio
17/11/2005 - 08:39 | Informe spam
Gracias Hector Miguel

he probado conivirtiendolo a doble (incluye hora) y cosa extrañisima, no se
vuelca mas que el primer dato. Con tal de no recorrer todo el rango de
fechas, creo que optaré por generar en vez de una matriz de datos, dos, la
primera dimensionada como fecha y la segunda como single, (estos datos los
extraigo de una aplicación externa)

Saludos a
Emilio
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.com/emilio


"Héctor Miguel" escribió en el mensaje
news:
Mostrar la cita
contiene una columna... fechas y la otra... numeros
Mostrar la cita
como cadenas de texto y no como fechas
Mostrar la cita
cDate, el grafico queda perfecto
Mostrar la cita
el recalculo, el proceso se demora mucho
Mostrar la cita
Worksheets("PI Teja 1").Range("C7") = Matriz
Mostrar la cita
todo tipo] :))
Mostrar la cita
estas 'pasando' textos ? [o fechas 'reales'] -?-
Mostrar la cita
regionales distintas...
Mostrar la cita
puedan ser considerados como fechas]...
Mostrar la cita
texto_fecha a dato_fecha -> multiplicando el rango *1
Mostrar la cita
'textual'] -?-
Mostrar la cita
#4 Héctor Miguel
17/11/2005 - 09:30 | Informe spam
hola, Emilio !

Mostrar la cita
estas incuyendo la funcion CDate para convertir [primero] el dato_Fecha ANTES [o denttro] de CDbl ??
-> CDbl(CDate(dato_Fecha))

con la ventana de inmediato [por 'rapidez' de prueba], usando la instruccion: -> activecell.offset(1) = cdbl(cdate(activecell))
lo que obtengo es lo siguiente...
1) si en la celda activa intruduzco {ctrl}+; espacio {ctl}+: [que deja: 11/17/05 2:17 a.m.]
en la celda de 'abajo' me devuelve: -> 38673.0954
2) si en la celda activa intruduzco {ctrl}+; [que deja: 11/17/05]
en la celda de 'abajo' me devuelve: -> 38673
3) si en la celda activa intruduzco {ctrl}+: [que deja: 2:20 a.m.]
en la celda de 'abajo' me devuelve: -> 0.097222222

comentas [si hubiera] detalles adicionales ?
saludos,
hector.
#5 Emilio
17/11/2005 - 19:57 | Informe spam
Héctor Miguel
Perdona que no te haya respondido todavía, hoy, mis prioridades cambiaron
radicalmente, espero poder meterme con ello mañana.

Saludos a desde Huelva
Emilio
miliuco56 ALGARROBA hotmail.com

http://www.mvp-access.com/foro
http://www.mvp-access.com/emilio

Reglas de conducta de los grupos de noticias:
http://support.microsoft.com/defaul...newsreglas

"Héctor Miguel" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida