problemas con fecha

15/09/2009 - 20:48 por j_lete | Informe spam
Hola grupo!!
Tengo una hoja de calculo de donde tengo que generar mensualmente un fichero
plano con los datos contenidos en algunas de las columnas de la hoja. Uno de
los campos es la fecha de carga que sirve para identificar los registros
correspondientes a cada mes (columna J) y los valores que tiene son por
ejemplo 28/08/2009., 28/09/2009.. El caso es que no me funciona ya que no
entre en el bucle ya que al comparar la fecha del registro con la fecha que
le introduzco no las considera a ambas como fecha. He probado con la función
format para la variable fecha, así como a definirla como string.
Como lo soluciono?
Gracias

Private Sub CommandButton1_Click()

Dim fecha As Date
Dim I As Integer

Open "c:\kk\f.txt" For Output As #1

fecha = InputBox("Introduce la Fecha de Liquidacion (27/mm/aaaa): ")
I = 2
Do While Range("J" & I) = fecha
Print #1, Range("A" & I) & Range("B" & I) & Range("H" & I)
I = I + 1
Loop

Close #1

End Sub

Preguntas similare

Leer las respuestas

#6 j_lete
22/09/2009 - 19:16 | Informe spam
En efecto Hector. Funciona con el cambio en el código. Solo he tenido que
cambiar
en el que me propusiste do while range("j" & i) <> ""
por do while range("j" & i) <> " ", ya que si no pongo el espacio no entra
en el bucle.
gracias de nuievo

"Héctor Miguel" escribió:

hola, !

> Tengo una hoja de calculo de donde tengo que generar mensualmente un fichero plano
> con los datos contenidos en algunas de las columnas de la hoja.
> Uno de los campos es la fecha de carga que sirve para identificar los registros correspondientes a cada mes (columna J)
> y los valores que tiene son por ejemplo 28/08/2009., 28/09/2009.
> El caso es que no me funciona ya que no entre en el bucle ya que al comparar la fecha del registro
> con la fecha que le introduzco no las considera a ambas como fecha.
> He probado con la funcion format para la variable fecha, asi como a definirla como string.
> Como lo soluciono?

1) "manipular" fechas (en excel) requiere anticipar dos o tres imponderables que (probable/seguramente) encontraras por el camino (p.e.)
- los datos en las celdas son datos-fecha (reales) ? (independientemente del formato numerico), o textos que "simulan" fechas
- el orden de fechas en tu configuracion regional es: ??? (dd-mm-aa, mm-dd-aa, aa-mm-dd) porque para vba ES mm-dd-aa (USA)

2) en el codigo que comentas, declaras una variable (fecha) como tipo de datos Date (PERO...)
al usar por codigo un InputBox, la "entrada" de fechas...
a) como compruebas que el dato puede ser convertido a dato-fecha (por vba ?)
b) COINCIDE con el orden de la configuracion regional del pc (???)

3) asumiendo que el (des)conocimiento de lo anterior no es problema (?)
- prueba cambiando el bucle "do...loop" por una configuracion de pregunta diferente (p.e.)

do while range("j" & i) <> ""
if range("j" & i) = fecha then
print #1 .
end if
loop

4) por si las dudas, consulta la siguiente exposicion de manejo de fechas y temas relacionados con los regionalismos:
http://www.bmsltd.co.uk/ExcelProgRe...efCh22.htm (de Stephen Bullen)

saludos,
hector.

__ el codigo expuesto __
> Private Sub CommandButton1_Click()
> Dim fecha As Date
> Dim I As Integer
> Open "c:\kk\f.txt" For Output As #1
> fecha = InputBox("Introduce la Fecha de Liquidacion (27/mm/aaaa): ")
> I = 2
> Do While Range("J" & I) = fecha
> Print #1, Range("A" & I) & Range("B" & I) & Range("H" & I)
> I = I + 1
> Loop
> Close #1
> End Sub



Respuesta Responder a este mensaje
#7 j_lete
22/09/2009 - 19:18 | Informe spam
Gracias compañero. En efecto el error estaba en el codigo ya que al cambiarlo
por la propuesta de Hector (do while range("j" & i) <> "") modificandolo a do
while range("j" & i) <> " " ha funcionado.

Muchas gracias por tu ayuda.
Saludos



"Cacho" escribió:

Complementando la info aportada por Héctor Miguel, podrías aplicar un Filtro
Avanzado según el siguiente ejemplo:

http://tinyurl.com/pabm83


Saludos, Cacho.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida