S
supermigale
Guest
Bonjour,
Je souhaite réaliser une macro qui va me chercher tous les cours de bourse sur une periode donnée roulante(par exemple 100 jours).Ne trouvant pas de site proposant cela j'ai trouvé sur yahoo que l'on pouvait télécharger au format excel les données. Seul problème il faut spécifier a partir de quelle date. J'ai décidé de prendre les données de l'année écoulée plus un mois. Ne connaissant rien en programation vba, j'ai essyé de réaliser une macro en utilisant l'enrigistreur sur le site yahoo.fr.Ca donne:
Sub yahoo1()
'
' yahoo1 Macro
' yahoo1
'
'
ActiveSheet.Paste
Range("A2").Select
Selection.Copy
Workbooks.Open Filename:= _
"http://ichart.yahoo.com/table.csv?s=VK.PA&a=00&b=1&c=2008&d=02&e=18&f=2009&g=d&ignore=.csv"
ActiveWindow.Visible = False
Windows("table.csv").Visible = True
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
Range("A1:A312").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Book1").Activate
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
Range("C4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("C4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Selection.TextToColumns Destination:=Range("C4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1)), TrailingMinusNumbers:=True
Columns("C:C").EntireColumn.AutoFit
End Sub
Avec sur ma feuille la cellule A2=A1-1.
Si je lance la macro, elle ne fonctionne pas et me renvoie a ActiveSheet.Paste. Si je fais un copié collé de ActiveSheet.Paste dans A1 la macro fonctionne. Pour qu'elle fonctionne a tout les coups je suis obligé a chaque fois de remettre ActiveSheet.Paste sur l'ancien ActiveSheet.Paste.
Personne n'aurait de solutions?
Je souhaite réaliser une macro qui va me chercher tous les cours de bourse sur une periode donnée roulante(par exemple 100 jours).Ne trouvant pas de site proposant cela j'ai trouvé sur yahoo que l'on pouvait télécharger au format excel les données. Seul problème il faut spécifier a partir de quelle date. J'ai décidé de prendre les données de l'année écoulée plus un mois. Ne connaissant rien en programation vba, j'ai essyé de réaliser une macro en utilisant l'enrigistreur sur le site yahoo.fr.Ca donne:
Sub yahoo1()
'
' yahoo1 Macro
' yahoo1
'
'
ActiveSheet.Paste
Range("A2").Select
Selection.Copy
Workbooks.Open Filename:= _
"http://ichart.yahoo.com/table.csv?s=VK.PA&a=00&b=1&c=2008&d=02&e=18&f=2009&g=d&ignore=.csv"
ActiveWindow.Visible = False
Windows("table.csv").Visible = True
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
Range("A1:A312").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Book1").Activate
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
Range("C4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("C4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Selection.TextToColumns Destination:=Range("C4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1)), TrailingMinusNumbers:=True
Columns("C:C").EntireColumn.AutoFit
End Sub
Avec sur ma feuille la cellule A2=A1-1.
Si je lance la macro, elle ne fonctionne pas et me renvoie a ActiveSheet.Paste. Si je fais un copié collé de ActiveSheet.Paste dans A1 la macro fonctionne. Pour qu'elle fonctionne a tout les coups je suis obligé a chaque fois de remettre ActiveSheet.Paste sur l'ancien ActiveSheet.Paste.
Personne n'aurait de solutions?