Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

QueryTables.Add ohne Spaltenverschiebung

QueryTables.Add ohne Spaltenverschiebung
13.03.2017 13:25:34
Alex
Servus Zusammen,
über ein Makro lasse ich mir die aktuellen Börsekurse von Yahoo geben.
Mein Problem ist, dass jedes mal 3 neue Spalten eingefügt werden...
Wie kann ich die Funktion ändern/ergänzen, dass nicht jedes mal die Spalten eingefügt werden?
Bin über Refresh gestolpert, aber bekomme es nicht hingebastelt
Code:
Sub Aktienkurse()
'Worksheets("Aktualisierung").Range("A9:C100").ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;http://finance.yahoo.com/d/quotes.csv?s=NOVO-B.CO+fntn.de+utdi.de=X&f=snl1" _
, Destination:=Range("$A$9"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;http://finance.yahoo.com/d/quotes.csv?s=DKKEUR=X+USDEUR=X&f=snl1" _
, Destination:=Range("$A$2"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

Danke für Hilfe :)
Gruß,
Alex

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: QueryTables.Add ohne Spaltenverschiebung
13.03.2017 16:33:42
Luschi
Hallo Alex,
so wie Du das machst, erstellst Du lauter Abfrage-Leichen, die zwar erstellt, aber nie wieder benutzt werden. Mit dem nachfolgenden Makro lösche erst mal alle Abfragen im Tabellenblatt 'Aktualisierung'.
Dabei wirst Du staunen, wieviele Abfragen sich bereits angesammelt habern:

Sub loeschenAlleQueries()
Dim qry As QueryTable, ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Aktualisierung")
For Each qry In ws.QueryTables
Debug.Print qry.Name
qry.Delete
Next qry
Set qry = Nothing
Set ws = Nothing
End Sub
Anschließend erstellst Du die Abfragen nach diesem Muster:

Sub Aktienkurse()
Dim qry As QueryTable, ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Aktualisierung")
ws.Range("A2:I100").ClearContents
On Error Resume Next
Set qry = ws.QueryTables("Yahoo_1")
On Error GoTo 0
If qry Is Nothing Then
'Abfrage existiert noch nicht
Set qry = ws.QueryTables.Add(Connection:= _
"TEXT;http://finance.yahoo.com/d/quotes.csv?s=NOVO-B.CO+fntn.de+utdi.de=X&f=snl1", _
Destination:=Range("$A$9"))
With qry
.Name = "Yahoo_1"
.FieldNames = True
.RowNumbers = False: .FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False: .SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Else
'Abfrage existiert bereits
qry.Refresh BackgroundQuery:=False
End If
Set qry = Nothing
On Error Resume Next
Set qry = ws.QueryTables("Yahoo_2")
On Error GoTo 0
If qry Is Nothing Then
'Abfrage existiert noch nicht
Set qry = ws.QueryTables.Add(Connection:= _
"TEXT;http://finance.yahoo.com/d/quotes.csv?s=DKKEUR=X+USDEUR=X&f=snl1", _
Destination:=Range("$A$2"))
With qry
.Name = "Yahoo_2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Else
qry.Refresh BackgroundQuery:=False
End If
Set qry = Nothing
Set ws = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: QueryTables.Add ohne Spaltenverschiebung
14.03.2017 15:49:36
Alex
Hallo Luschi,
danke Dir :)
Habe ich so übernommen und erstmal die Anfragen gelösch (mehr als 100).
Ich bin auch noch auf die Lösung: .RefreshStyle = xlOverwriteCells
gekommen, aber deine ist eleganter und das Problem mit der Anzahl der Anfragen ist nicht gelöst.
Danke und Gruß,
Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige