Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 15h58   #1
Invité de passage
 
Homme
Étudiant
Inscription : septembre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Problème requête web Avec variables

Bonjour à tous,

dans le cadre d'un travail de groupe, nous devons récupérer des données financières sur internet et les traiter à l'aide d'un macro. Nous avons donc installé une macro avec le code suivant qui est censé récupérer à l'aide d'un formulaire qui demande la valeur et les dates, récupérer les bonnes données sur le site Yahoo Finance.

Nous possédons tous Excel 2007.
Cependant, certains utilisateurs ont une erreur 1004 qui leur dit que les données sont introuvable à l'adresse générée.

Auriez-vous une idée de comment régler ce problème pour que la macro fonctionne pour tout le monde?

Merci d'avance pour votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
Private Sub CommandButton1_Click()
 
Dim short_code As String
Dim line As String
Dim Cible As Range
Dim lng As Integer
Dim cln As Integer
Dim eday As Integer
Dim emonth As Integer
Dim eyear As Integer
Dim sday As Integer
Dim smonth As Integer
Dim syear As Integer
 
Set Cible = ActiveCell
 
parametres.Hide
 
Application.ScreenUpdating = False
 
 
short_code = TextBox1.Value
eday = TextBox2.Value
emonth = TextBox3.Value - 1
eyear = TextBox4.Value
sday = TextBox5.Value
smonth = TextBox6.Value - 1
syear = TextBox7.Value
 
'Extrait les données
 With ActiveSheet.QueryTables.Add(Connection:= _
 "URL;http://ichart.finance.yahoo.com/table.csv?s=" & short_code & "&d=" & emonth & "&e=" & eday & "&f=" & eyear & "&g=d&a=" & smonth & "&b=" & sday & "&c=" & syear & "&ignore=.csv", _
 destination:=Cible)
 
 .BackgroundQuery = True
 .TablesOnlyFromHTML = True
 .Refresh BackgroundQuery:=False
 .SaveData = True
 End With
 
'Convertis les données
 
    Cible.EntireColumn.TextToColumns destination:=Cible, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        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
        Cible.EntireColumn.AutoFit
 
' Supprime lignes inutiles
Cible.Offset(0, 2).EntireColumn.Delete
Cible.Offset(0, 2).EntireColumn.Delete
Cible.Offset(0, 2).EntireColumn.Delete
 
 
'Calcul de rentabilité jounalière
 
lng = Cible.End(xlDown).Row - 1
cln = Cible.End(xlToRight).Column
 
       'Remplace . par , dans les nombres
 
Range(Cells(1, 2), Cells(lng, cln)).Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
 
       'Calcul de la rentabilité journalière
 
Cells(1, cln + 1) = "Rnt journ"
 
For i = 2 To lng - 1
Cells(i, cln + 1) = (Cells(i, cln) / Cells(i + 1, cln)) - 1
Next
 
Cells(lng + 1, cln + 1).Formula = "=AVERAGE(" & Cells(2, cln + 1).Address & ":" & Cells(lng - 1, cln + 1).Address & ")"
Cells(lng + 1, 1) = "DAILY AVERAGE"
     'Calculs de variance
 
Cells(1, cln + 2) = "Variance"
For i = 2 To lng - 1
Cells(i, cln + 2) = ((Cells(i, cln + 1) - Cells(lng + 1, cln + 1))) ^ 2
Next
 
Cells(lng + 1, cln + 2).Formula = "=AVERAGE(" & Cells(2, cln + 2).Address & ":" & Cells(lng - 1, cln + 2).Address & ")"
Cells(lng + 2, cln + 2).Formula = "=252 *" & Cells(lng + 1, cln + 2).Address
 
Application.ScreenUpdating = True
 
End Sub
Joe-Rato est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h56.


 
 
 
 
Partenaires

Hébergement Web