Una de fechas

01/04/2008 - 21:00 por Alejandro Garcia G. | Informe spam
Un cordial saludo. Tengo otra inquietud sobre fechas, en un post
anterior, necesitaba incluir en una celdala fecha que me traia el
nomcre de un archivo, Juan M, me colaboro y ayudo dandome este codigo.

Sub test()
Dim archivo As String
Dim numero As String

archivo = ThisWorkbook.Name
numero = Mid(archivo, InStr(1, ThisWorkbook.Name, "_") + 1, 8)
Range("A1") = DateSerial(Left(numero, 4), Mid(numero, 5, 2),
Right(numero, 2))
End Sub

Funciona bien, pero me da una fecha incorrecta, el toma los valores
correctos pero al pasar la fecha me genera otra mucho mas adelante de
la que realmente es. Que funcion puedo colocar para cambiar el
DAteSErial y me de la fecha correcta. Esta va incluida en una macro.

Gracias.

Preguntas similare

Leer las respuestas

#1 Juan M
01/04/2008 - 21:21 | Informe spam
Hola Alejandro,

¿Podrías poner algunos ejemplos cuando funciona bien y, sobre todo, cuando
no funciona como se espera?

Un saludo,
Juan

"Alejandro Garcia G." escribió
Un cordial saludo. Tengo otra inquietud sobre fechas, en un post anterior,
necesitaba incluir en una celdala fecha que me traia el nomcre de un
archivo, Juan M, me colaboro y ayudo dandome este codigo.

Sub test()
Dim archivo As String
Dim numero As String

archivo = ThisWorkbook.Name
numero = Mid(archivo, InStr(1, ThisWorkbook.Name, "_") + 1, 8)
Range("A1") = DateSerial(Left(numero, 4), Mid(numero, 5, 2), Right(numero,
2))
End Sub

Funciona bien, pero me da una fecha incorrecta, el toma los valores
correctos pero al pasar la fecha me genera otra mucho mas adelante de la
que realmente es. Que funcion puedo colocar para cambiar el DAteSErial y
me de la fecha correcta. Esta va incluida en una macro.

Gracias.


Respuesta Responder a este mensaje
#2 Juan M
02/04/2008 - 09:18 | Informe spam
Hola Alejandro,

Con el archivo que has enviado, a mi me funciona correctamente. (03/07/2008)

Además es algo extraño que de dos valores diferentes

..._20080703_... pero al ejecutar la macho me da una fecha del año 2010
o 2009.



¿Tienes nombres de archivo concretos donde haya funcionado mal?

La función que te pasé, lo que hace es extraer del nombre del archivo una
cadena de 8 caracteres a partir de que encuentra el guión bajo "_".

numero = Mid(archivo, InStr(1, ActiveWorkbook.Name, "_") + 1, 8)





eso lo hacen las funciones MID e INSTR

En DateSerial, hay que introducir el año, el mes y el día
para el año, de la cadena anterior tomamos los cuatro primeros caracteres
Left(numero, 4)




para el día los dos últimos
Right(numero, 2)




para el mes dos caracteres desde la posición 5
Mid(numero, 5, 2)





Un saludo,
Juan

"Alejandro Garcia G." escribió
Ok, listo, esta es la macro que utilizo para automatizar unos datos:

Sub Auto()
'
Dim archivo As String
Dim numero As String

archivo = ActiveWorkbook.Name
numero = Mid(archivo, InStr(1, ActiveWorkbook.Name, "_") + 1, 8)

'
ActiveCell.FormulaR1C1 = "cedula"
Range("B1").Select
ActiveCell.FormulaR1C1 = "obliga"
Range("C1").Select
ActiveCell.FormulaR1C1 = "valor"
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "0.00"
Selection.End(xlUp).Select
Range("D1").Select
ActiveCell.FormulaR1C1 = "fecha"
Range("D2").Select
'ActiveCell.FormulaR1C1 = Date(Mid(Left(numero, 4),1),
mid(Mid(numero, 5, 2),1), mid(Right(numero, 2))
ActiveCell.FormulaR1C1 = DateSerial(Left(numero, 4), Mid(numero, 5,
2), Right(numero, 2))
'ActiveCell.FormulaR1C1 = Date - 1
Range("D2").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
Range("a2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Selection.End(xlUp).Select

End Sub

Yo aplico esta macro a un archivo que descargo (.txt) de un banco,
luego configuro unas columnas con titulo y otra con la fecha del dia
que me viene en el nombre del archivo. Si gustas ejecutalo en el que
estoy adjuntando.

Si te das cuenta el nombre del archivo me trae la fecha
..._20080703_... pero al ejecutar la macho me da una fecha del año 2010
o 2009.

Gracias por toda tu colaboracion.

Respuesta Responder a este mensaje
#3 Alejandro Garcia G.
04/04/2008 - 16:00 | Informe spam
Juan M, gracias nuevamente. He observado que la macro me esta
funcionando bien, como tu comentas, pero en varios archivos me daba el
error, voy a buscarlos para probrar y luego les comento.

Mil gracias nuevamente. Saludos a todos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida