[Excel/macro] Error 1004 in connectstring

Pagina: 1
Acties:
  • 103 views sinds 30-01-2008
  • Reageer

  • Tano
  • Registratie: December 2001
  • Laatst online: 06-07 12:22
In een macro die een hele tijd zonder problemen heeft gedraaid, krijg ik nu error (code 1004).
In debug mode geeft hij aan dat ".Refresh BackgroundQuery:=False" niet klopt.

De bedoeling van de macro is dat hij een ticker van een aandeel uit een cel haalt, de pagina van het aandeel opzoekt op finance yahoo, deze pagina kopieert naar een aparte worksheet, en de prijs eruit naar de worksheet waar ook de ticker staat kopieert.

Heeft iemand enig idee wat er mis is?

edit: de macro draait vaak even goed, maar loopt na 5 of 6 loops vast: "runtime error code 1004".
Sub SelectCell()

Dim darget As Range
Set darget = Sheets("Blad1").Range("I12")
Application.ScreenUpdating = False
For i = 12 To 50
Call Getprice((Sheets("Blad1").Range("D" & i).Text), darget)
Set darget = darget.Cells(2, 1)
Next i
Sheets("Blad1").Select
' Range("F5:F40").Select
'Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
' SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
' ReplaceFormat:=False
' Selection.NumberFormat = "0.00"
Application.ScreenUpdating = True
MsgBox ("Done!")

End Sub

Sub Getprice(Mystr, darget)
Sheets("Macroveld").Select
ConnectString = "URL;http://finance.yahoo.com/q?s=" & Mystr
With ActiveSheet.QueryTables.Add(Connection:= _
ConnectString, Destination:=Range("$A$3"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "14"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range("B3").Select
Selection.Copy
Sheets("Blad1").Select
darget.Select
ActiveSheet.Paste

Sheets("Macroveld").Select
Range("A1:e14").Select
Application.CutCopyMode = False
Selection.QueryTable.Delete
Selection.ClearContents
End Sub

Verwijderd

kijk eens naar de url die je hebt samengesteld op het moment van de foutmelding. vormt de samenvoeging met (Sheets("Blad1").Range("D" & i).Text) een correcte url op dat moment? redirect yahoo naar een andere url na opvraging?

  • Tano
  • Registratie: December 2001
  • Laatst online: 06-07 12:22
Ja, dat vormt altijd een correcte link (in die klolom staan enkel tickers die Yahoo goed oppakt).

Ik heb echter wel iets anders gevonden. Als ik in VB (tools-> options) Require variable declaration aanvink lijkt het opgelost. Waarom is me echter een raadsel.

Link waar ik de aanwijzing vond: http://www.vbforums.com/archive/index.php/t-333048.html


edit: sterker nog, na het uitvinken van die optie doet ie het ook nog. Echter, als ik Excel afsluit en meteen de file weer open krijg ik weer de foutmelding (totdat ik bovenstaande optie weer een keer aanvink en de macro run). Daarna kan ik weer doen wat ik wil.

edit2: okay.. it beats me 8)7 Zelfs na het opstarten doet ie het nu... optie aan of uitgevinkt maakt niet uit. Iemand enig idee waar het aan heeft gelegen?

[ Voor 64% gewijzigd door Tano op 24-07-2007 15:39 ]