gran problema

24/05/2004 - 17:22 por gema | Informe spam
hola a todos ,
Este es mi problema : obtengo de internet unos datos en
una tabla que manipulo usado el codigo mi problema es que
tengo que guardar la fecha de cada actualizacion ( una
vez por dia) la fecha la obtengo en una celda como texto
de esta manera :

Daily Returns for Major Fixed Income Indexes for May 21
2004 in EURO Terms

usando las funciones izquierda y derecha llego a
obtener "May 21 2004" , pero al variar el largo de
caracteres de los meses , me cambia lo que obtengo usando
las funciones , ademas no es en realidad una fecha ,
necesito que sea el resultado en formato fecha para
comprar con otro archivo .

En resumen mi pregunta es : Es posible obtener la fecha
de ese texto en formato fecha ??

muchas gracias
gema

Preguntas similare

Leer las respuestas

#1 fernando
24/05/2004 - 18:47 | Informe spam
Hazlo por código.



"gema" escribió en el mensaje
news:1151b01c441a2$f42be000$
hola a todos ,
Este es mi problema : obtengo de internet unos datos en
una tabla que manipulo usado el codigo mi problema es que
tengo que guardar la fecha de cada actualizacion ( una
vez por dia) la fecha la obtengo en una celda como texto
de esta manera :

Daily Returns for Major Fixed Income Indexes for May 21
2004 in EURO Terms

usando las funciones izquierda y derecha llego a
obtener "May 21 2004" , pero al variar el largo de
caracteres de los meses , me cambia lo que obtengo usando
las funciones , ademas no es en realidad una fecha ,
necesito que sea el resultado en formato fecha para
comprar con otro archivo .

En resumen mi pregunta es : Es posible obtener la fecha
de ese texto en formato fecha ??

muchas gracias
gema
Respuesta Responder a este mensaje
#2 Daniel.M
24/05/2004 - 19:48 | Informe spam
Hola,

Puede usar de una funcion especiale VBA : GetDate()

en A1: su texto
En B1: =GetDate(A1)

En un modulo, la funcion siguiente:

Saludos,

Daniel M.
Nota: Tiene que tener Internet Explorer 5.x o mas (o el 'Scripting Engine'
instalado).

' ++++++++++++++++++
Public Function GetDate(s As String) As Variant
Dim RE As Object, MS As Object
Dim aYear As Integer, aMonth As Variant, aDay As Integer
Dim smonth As String
Dim theMonths As Variant

theMonths = Array("january", "february", "march", "april", _
"may", "june", "july", "august", "september", "october", _
"november", "december")

Set RE = CreateObject("vbscript.regexp")
RE.IgnoreCase = True: RE.Global = False
RE.Pattern = "(\S+)\s+(\d{1,2})\s+(\d{2,4})"

Set MS = RE.Execute(s) ' find the pattern

If MS.Count > 0 Then ' pattern found ?
aDay = MS(0).SubMatches(1)
aYear = MS(0).SubMatches(2)
smonth = LCase(MS(0).SubMatches(0))

aMonth = Application.Match(smonth, theMonths, 0)
If IsError(aMonth) Then
GetDate = CVErr(xlErrNum)
Else
GetDate = DateSerial(aYear, aMonth, aDay)
End If
Else
GetDate = CVErr(xlErrNum)
End If

Set MS = Nothing: Set RE = Nothing

End Function

"fernando" wrote in message
news:
Hazlo por código.



"gema" escribió en el mensaje
news:1151b01c441a2$f42be000$
> hola a todos ,
> Este es mi problema : obtengo de internet unos datos en
> una tabla que manipulo usado el codigo mi problema es que
> tengo que guardar la fecha de cada actualizacion ( una
> vez por dia) la fecha la obtengo en una celda como texto
> de esta manera :
>
> Daily Returns for Major Fixed Income Indexes for May 21
> 2004 in EURO Terms
>
> usando las funciones izquierda y derecha llego a
> obtener "May 21 2004" , pero al variar el largo de
> caracteres de los meses , me cambia lo que obtengo usando
> las funciones , ademas no es en realidad una fecha ,
> necesito que sea el resultado en formato fecha para
> comprar con otro archivo .
>
> En resumen mi pregunta es : Es posible obtener la fecha
> de ese texto en formato fecha ??
>
> muchas gracias
> gema


Respuesta Responder a este mensaje
#3 Servando
25/05/2004 - 00:27 | Informe spam
Hola Gema:

Antes que nada, te comento que la solucion que te voy a
dar funciona bien, pero yo preferiria utilizar la Funcion
Personalizada que te escribio Daniel.

¿Y entonces para que te doy esta?, bueno, pues para que
veas que tambien se puede hacer sin programación:

Procedimiento:
1. En una hoja nueva pon una tabla con lo meses asi:
A B
MESES_Txt MESES_Num
January 1
February 2
March 3
April 4
May 5
June 6
July 7
August 8
September 9
October 10
November 11
December 12

Para que este identico a como yo la prepare, ponle nombre
al rango y llamale "Meses", ya que si no le pones este
nombre, al copiar la formula que te voy a dar a
continuacion, entonces vas a tener que reemplazar por el
rango o por el nombre que tu le hayas dado y te vas a
perder.

2. Ahora viene la "pequeña" formula que toma el texto de
A3... la voy a escribir en pequeñas partes y tu la copias
y la unes.š
[A3]="Daily Returns for Major... EURO Terms"

þCHA(VALOR(EXTRAE(EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),1)+1),5)),
BUSCARV(IZQUIERDA(EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))))-1),
Meses,2,FALSO),VALOR(EXTRAE(EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20)))),3)))

Listo, si quieres probarla aqui esta... te repito, es una
sola formula, copiala y quitale los saltos de linea.

NOTA: Mi separador es la coma. Si tu separador es el
punto y coma, te conviene, pasarla a Word, reemplaza
todas las comas (,) por punto y coma (;) y luego pasala a
Excel

Saludos
Servando Villalon


hola a todos ,
Este es mi problema : obtengo de internet unos datos en
una tabla que manipulo usado el codigo mi problema es


que
tengo que guardar la fecha de cada actualizacion ( una
vez por dia) la fecha la obtengo en una celda como texto
de esta manera :

Daily Returns for Major Fixed Income Indexes for May 21
2004 in EURO Terms

Respuesta Responder a este mensaje
#4 gema
01/06/2004 - 09:49 | Informe spam
Muchisimas gracias Daniel




Hola,

Puede usar de una funcion especiale VBA : GetDate()

en A1: su texto
En B1: =GetDate(A1)

En un modulo, la funcion siguiente:

Saludos,

Daniel M.
Nota: Tiene que tener Internet Explorer 5.x o mas (o


el 'Scripting Engine'
instalado).

' ++++++++++++++++++
Public Function GetDate(s As String) As Variant
Dim RE As Object, MS As Object
Dim aYear As Integer, aMonth As Variant, aDay As Integer
Dim smonth As String
Dim theMonths As Variant

theMonths = Array


("january", "february", "march", "april", _
"may", "june", "july", "august", "september", "october",


_
"november", "december")

Set RE = CreateObject("vbscript.regexp")
RE.IgnoreCase = True: RE.Global = False
RE.Pattern = "(\S+)\s+(\d{1,2})\s+(\d{2,4})"

Set MS = RE.Execute(s) ' find the pattern

If MS.Count > 0 Then ' pattern found ?
aDay = MS(0).SubMatches(1)
aYear = MS(0).SubMatches(2)
smonth = LCase(MS(0).SubMatches(0))

aMonth = Application.Match(smonth, theMonths, 0)
If IsError(aMonth) Then
GetDate = CVErr(xlErrNum)
Else
GetDate = DateSerial(aYear, aMonth, aDay)
End If
Else
GetDate = CVErr(xlErrNum)
End If

Set MS = Nothing: Set RE = Nothing

End Function

"fernando" wrote in message
news:
Hazlo por código.



"gema" escribió




en el mensaje
news:1151b01c441a2$f42be000$
> hola a todos ,
> Este es mi problema : obtengo de internet unos datos




en
> una tabla que manipulo usado el codigo mi problema




es que
> tengo que guardar la fecha de cada actualizacion (




una
> vez por dia) la fecha la obtengo en una celda como




texto
> de esta manera :
>
> Daily Returns for Major Fixed Income Indexes for May




21
> 2004 in EURO Terms
>
> usando las funciones izquierda y derecha llego a
> obtener "May 21 2004" , pero al variar el largo de
> caracteres de los meses , me cambia lo que obtengo




usando
> las funciones , ademas no es en realidad una fecha ,
> necesito que sea el resultado en formato fecha para
> comprar con otro archivo .
>
> En resumen mi pregunta es : Es posible obtener la




fecha
> de ese texto en formato fecha ??
>
> muchas gracias
> gema






.

Respuesta Responder a este mensaje
#5 gema
01/06/2004 - 09:50 | Informe spam
Muchisimas gracias Servando



Hola Gema:

Antes que nada, te comento que la solucion que te voy a
dar funciona bien, pero yo preferiria utilizar la


Funcion
Personalizada que te escribio Daniel.

¿Y entonces para que te doy esta?, bueno, pues para que
veas que tambien se puede hacer sin programación:

Procedimiento:
1. En una hoja nueva pon una tabla con lo meses asi:
A B
MESES_Txt MESES_Num
January 1
February 2
March 3
April 4
May 5
June 6
July 7
August 8
September 9
October 10
November 11
December 12

Para que este identico a como yo la prepare, ponle


nombre
al rango y llamale "Meses", ya que si no le pones este
nombre, al copiar la formula que te voy a dar a
continuacion, entonces vas a tener que reemplazar por el
rango o por el nombre que tu le hayas dado y te vas a
perder.

2. Ahora viene la "pequeña" formula que toma el texto de
A3... la voy a escribir en pequeñas partes y tu la


copias
y la unes.š
[A3]="Daily Returns for Major... EURO Terms"

þCHA(VALOR(EXTRAE(EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),1)+1),5)),
BUSCARV(IZQUIERDA(EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))))-1),
Meses,2,FALSO),VALOR(EXTRAE(EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20))),
HALLAR(" ",EXTRAE(A3,50,
HALLAR(" in",EXTRAE(A3,50,20)))),3)))

Listo, si quieres probarla aqui esta... te repito, es


una
sola formula, copiala y quitale los saltos de linea.

NOTA: Mi separador es la coma. Si tu separador es el
punto y coma, te conviene, pasarla a Word, reemplaza
todas las comas (,) por punto y coma (;) y luego pasala


a
Excel

Saludos
Villalon


hola a todos ,
Este es mi problema : obtengo de internet unos datos en
una tabla que manipulo usado el codigo mi problema es


que
tengo que guardar la fecha de cada actualizacion ( una
vez por dia) la fecha la obtengo en una celda como




texto
de esta manera :

Daily Returns for Major Fixed Income Indexes for May 21
2004 in EURO Terms




.

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