Link anhand Drop Down Liste erstellen und dann aufrufen
gelöst
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „fatony“ ()
Leider kriege ich es nicht hin, da immer wieder der Fehler "Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler" gemeldet wird.
Wo tritt der Fehler auf.
Das ist meine Signatur und sie wird wunderbar sein!
gelöst
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „fatony“ ()
Hallo,
dann gibt es die Adresse nicht oder diese hat mehr als 256 Zeichen. Gib Dir die Adresse im Direktfenster aus und versuche diese dann über Datei>Öffnen manuell zu laden. Das sollte dann auch nicht klappen.
Fehler 1004 bedeutet, dass Du auf etwas zugreifen möchtest, was es (so) nicht gibt.
Du weist dem wb eine Datei (im Netz) zu, die nicht geöffnet werden kann.
Edit:
Die "Merker" A bis D sind gar nicht für die Sub, welche die Daten holt, gültig. Diese müssen für die Tabelle deklariert werden. Ein
Visual Basic-Quellcode
OptionExplicit
ganz als Erstes im Code hilft Dir, solche Fehler zu finden.
Ich würde aber die URL immer vor dem holen neu zusammenbauen.
Gruß
Peterfido
Keine Unterstützung per PN!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „peterfido“ ()
gelöst
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „fatony“ ()
Hallo,
ja, siehe meinen vorherigen Beitrag. A, B, C und D müssen für die gesamte Mappe Deklariert werden, nicht nur für die eine Sub.
Visual Basic-Quellcode
'Code wieder entfernt
Edit:
habe nicht darauf geachtet, dass Du Deinen Code weiter verändert hast. Probiere mal den ursprünglichen Code mit der anderen Variablendeklaration.
Visual Basic-Quellcode
optionexplicit
Dim A AsString
Dim B AsString
Dim C AsString
Dim D AsString
PrivateSub Worksheet_Change(ByVal Target As Range)
'Private Sub Worksheet_Change(ByVal Target As Range)
strGDP ="https://api.stlouisfed.org/fred/series/observations?series_id=" & A & "&units=" & B & "&frequency=" & C & "&aggregation_method=" & D & "&observation_start=1600-01-01&api_key=1584d907686aa8b57e1447c71a341789"
Set wb = Workbooks.OpenXML(Filename:=strGDP, LoadOption:=xlXmlLoadImportToList)
'If Not Workbooks.LoadXML(Filename:=strGDP, LoadOption:=xlXmlLoadImportToList) Then
' msgbox "Diese Kombination ist nicht vorhanden! Bitte Auswahl ändern! (Fehler 01)"
'End If
Application.DisplayAlerts =True
Application.ScreenUpdating =True'ZUSATZ
EndSub
PrivateSub CommandButton1_Click()
Call Tabelle8.GetMacroData_GDP
EndSub
Edit 2: Alles ungetestet.
Edit 3: Für Deinen "neuen" Code gibt es sicher auch eine Lösung, einfach mal ins Direktfenster ausgeben, was A,B,C und D so beinhaltet.
Dein Fehler 3: Du hast bei den Cells Zeile und Spalte vertauscht.
Select case ziehe ich bei mehreren Optionen vor.
Mit Select Case und Debug-Ausgaben. Wo der Fehler 9 her kommt, überlasse ich Dir.
Visual Basic-Quellcode
OptionExplicit
Sub GetMacroData_GDP()
Dim wb As Workbook
Dim strGDP AsString
Dim A AsString
Dim B AsString
Dim C AsString
Dim D AsString
SelectCase Cells(2, 1).Text
Case"Gross Domestic Product(GDP)"
A ="GDP"
Case"Urban Consumer Prices (UCP)"
A ="CPIAUCSL"
Case"Effective Federal Funds Rate (EFFR)"
A ="FEDFUNDS"
Case"M1 Money Stock (M1)"
A ="M1"
Case"M2 Money Stock (M2)"
A ="M2"
CaseIs="Total Credit to Private Non-Financial Sector (Adjusted for Breaks)"
A ="CRDQUSAPABIS"
CaseElse
A =""
EndSelect
Debug.Print"A:" & A & "; " & Cells(2, 1).Text
SelectCase Cells(2, 2).Text
Case"Levels (No transformation)"
B ="lin"
Case"Change"
B ="chg"
Case"Change from Year ago"
B ="ch1"
Case"Percentage Change"
B ="pch"
Case"Percentage Change from Year ago"
B ="pc1"
Case"Compounded annual Rate of change"
B ="pca"
Case"Continuously Compounded Rate of Change"
B ="cch"
Case"Continuously Compounded Annual Rate of Change"
B ="cca"
Case"Natural Log"
B ="log"
CaseElse
B =""
EndSelect
Debug.Print"B:" & B & "; " & Cells(2, 2).Text
SelectCase Cells(2, 3).Text
Case"Daily"
C ="d"
Case"Weekly"
C ="w"
Case"Biweekly"
C ="bw"
Case"Monthly"
C ="m"
Case"Quarterly"
C ="q"
Case"Semiannual"
C ="sa"
Case"Annual"
C ="a"
CaseElse
C =""
EndSelect
Debug.Print"C:" & C & "; " & Cells(2, 3).Text
SelectCase Cells(2, 4).Text
Case"Average"
D ="avg"
Case"Sum"
D ="sum"
Case"End of Period"
D ="eop"
CaseElse
D =""
EndSelect
Debug.Print"D:" & D & "; " & Cells(2, 4).Text
Application.ScreenUpdating =False
Application.DisplayAlerts =False
strGDP ="https://api.stlouisfed.org/fred/series/observations?series_id=" & A & "&units=" & B & "&frequency=" & C & _
"&aggregation_method=" & D & "&observation_start=1600-01-01&api_key=1584d907686aa8b57e1447c71a341789"
Debug.Print strGDP
OnErrorResumeNext
Set wb = Workbooks.OpenXML(Filename:=strGDP, LoadOption:=xlXmlLoadImportToList)