Link anhand Drop Down Liste erstellen und dann aufrufen

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist 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!
    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

    1. Option Explicit
    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“ ()

    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

    1. '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

    1. option explicit
    2. Dim A As String
    3. Dim B As String
    4. Dim C As String
    5. Dim D As String
    6. Private Sub Worksheet_Change(ByVal Target As Range)
    7. 'Private Sub Worksheet_Change(ByVal Target As Range)
    8. If Not Intersect(Target, Range("A2")) Is Nothing Then
    9. Select Case Range("A2")
    10. Case "Gross Domestic Product(GDP)": A = "GDP"
    11. Case "Urban Consumer Prices (UCP)": A = "CPIAUCSL"
    12. Case "Effective Federal Funds Rate (EFFR)": A = "FEDFUNDS"
    13. Case "M1 Money Stock (M1)": A = "M1"
    14. Case "M2 Money Stock (M2)": A = "M2"
    15. Case "Total Credit to Private Non-Financial Sector (Adjusted for Breaks)": A = "CRDQUSAPABIS"
    16. End Select
    17. End If
    18. If Not Intersect(Target, Range("B2")) Is Nothing Then
    19. Select Case Range("B2")
    20. Case "Levels (No transformation)": B = "lin"
    21. Case "Change": B = "chg"
    22. Case "Change from Year ago": B = "ch1"
    23. Case "Percentage Change": B = "pch"
    24. Case "Percentage Change from Year ago": B = "pc1"
    25. Case "Compounded annual Rate of change": B = "pca"
    26. Case "Continuously Compounded Rate of Change": B = "cch"
    27. Case "Continuously Compounded Annual Rate of Change": B = "cca"
    28. Case "Natural Log": B = "log"
    29. Case "": B = ""
    30. End Select
    31. End If
    32. If Not Intersect(Target, Range("C2")) Is Nothing Then
    33. Select Case Range("C2")
    34. Case "Daily": C = "d"
    35. Case "Weekly": C = "w"
    36. Case "Biweekly": C = "bw"
    37. Case "Monthly": C = "m"
    38. Case "Quarterly": C = "q"
    39. Case "Semiannual": C = "sa"
    40. Case "Annual": C = "a"
    41. Case "": C = ""
    42. End Select
    43. End If
    44. If Not Intersect(Target, Range("D2")) Is Nothing Then
    45. Select Case Range("D2")
    46. Case "Average": D = "avg"
    47. Case "Sum": D = "sum"
    48. Case "End of Period": D = "eop"
    49. End Select
    50. End If
    51. End Sub
    52. Sub GetMacroData_GDP()
    53. Dim wb As Workbook
    54. Dim strGDP As String
    55. 'Dim A As String
    56. 'Dim B As String
    57. 'Dim C As String
    58. 'Dim D As String
    59. Application.ScreenUpdating = False
    60. Application.DisplayAlerts = False
    61. 'strGDP = "https://api.stlouisfed.org/fred/series/observations?series_id=GDP&frequency=q&observation_start=1600-01-01&api_key=1584d907686aa8b57e1447c71a341789"
    62. 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"
    63. Set wb = Workbooks.OpenXML(Filename:=strGDP, LoadOption:=xlXmlLoadImportToList)
    64. 'If Not Workbooks.LoadXML(Filename:=strGDP, LoadOption:=xlXmlLoadImportToList) Then
    65. ' msgbox "Diese Kombination ist nicht vorhanden! Bitte Auswahl ändern! (Fehler 01)"
    66. 'End If
    67. Application.DisplayAlerts = True
    68. Application.ScreenUpdating = True 'ZUSATZ
    69. End Sub
    70. Private Sub CommandButton1_Click()
    71. Call Tabelle8.GetMacroData_GDP
    72. End Sub

    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

    1. Option Explicit
    2. Sub GetMacroData_GDP()
    3. Dim wb As Workbook
    4. Dim strGDP As String
    5. Dim A As String
    6. Dim B As String
    7. Dim C As String
    8. Dim D As String
    9. Select Case Cells(2, 1).Text
    10. Case "Gross Domestic Product(GDP)"
    11. A = "GDP"
    12. Case "Urban Consumer Prices (UCP)"
    13. A = "CPIAUCSL"
    14. Case "Effective Federal Funds Rate (EFFR)"
    15. A = "FEDFUNDS"
    16. Case "M1 Money Stock (M1)"
    17. A = "M1"
    18. Case "M2 Money Stock (M2)"
    19. A = "M2"
    20. Case Is = "Total Credit to Private Non-Financial Sector (Adjusted for Breaks)"
    21. A = "CRDQUSAPABIS"
    22. Case Else
    23. A = ""
    24. End Select
    25. Debug.Print "A:" & A & "; " & Cells(2, 1).Text
    26. Select Case Cells(2, 2).Text
    27. Case "Levels (No transformation)"
    28. B = "lin"
    29. Case "Change"
    30. B = "chg"
    31. Case "Change from Year ago"
    32. B = "ch1"
    33. Case "Percentage Change"
    34. B = "pch"
    35. Case "Percentage Change from Year ago"
    36. B = "pc1"
    37. Case "Compounded annual Rate of change"
    38. B = "pca"
    39. Case "Continuously Compounded Rate of Change"
    40. B = "cch"
    41. Case "Continuously Compounded Annual Rate of Change"
    42. B = "cca"
    43. Case "Natural Log"
    44. B = "log"
    45. Case Else
    46. B = ""
    47. End Select
    48. Debug.Print "B:" & B & "; " & Cells(2, 2).Text
    49. Select Case Cells(2, 3).Text
    50. Case "Daily"
    51. C = "d"
    52. Case "Weekly"
    53. C = "w"
    54. Case "Biweekly"
    55. C = "bw"
    56. Case "Monthly"
    57. C = "m"
    58. Case "Quarterly"
    59. C = "q"
    60. Case "Semiannual"
    61. C = "sa"
    62. Case "Annual"
    63. C = "a"
    64. Case Else
    65. C = ""
    66. End Select
    67. Debug.Print "C:" & C & "; " & Cells(2, 3).Text
    68. Select Case Cells(2, 4).Text
    69. Case "Average"
    70. D = "avg"
    71. Case "Sum"
    72. D = "sum"
    73. Case "End of Period"
    74. D = "eop"
    75. Case Else
    76. D = ""
    77. End Select
    78. Debug.Print "D:" & D & "; " & Cells(2, 4).Text
    79. Application.ScreenUpdating = False
    80. Application.DisplayAlerts = False
    81. strGDP = "https://api.stlouisfed.org/fred/series/observations?series_id=" & A & "&units=" & B & "&frequency=" & C & _
    82. "&aggregation_method=" & D & "&observation_start=1600-01-01&api_key=1584d907686aa8b57e1447c71a341789"
    83. Debug.Print strGDP
    84. On Error Resume Next
    85. Set wb = Workbooks.OpenXML(Filename:=strGDP, LoadOption:=xlXmlLoadImportToList)
    86. If Err.Number <> 0 Then
    87. Debug.Print "Fehler: " & Err.Number & ":" & Err.Description
    88. Err.Clear
    89. End If
    90. On Error GoTo 0
    91. Application.DisplayAlerts = True
    92. Application.ScreenUpdating = True
    93. End Sub

    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „peterfido“ ()