Thema Datum  Von Nutzer Rating
Antwort
Rot Laufzeitfehler 9;Makro: Daten abrufen, viele Arbeitsblätter, Power Query, Zusammenführen
16.08.2022 16:09:46 Bernd
Solved
16.08.2022 18:02:27 ralf_b
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
16.08.2022 16:09:46
Views:
1151
Rating: Antwort:
 Nein
Thema:
Laufzeitfehler 9;Makro: Daten abrufen, viele Arbeitsblätter, Power Query, Zusammenführen

Hi Leute,

ich bekomme bei meinem aufgezeichneten Makro die Fehlermeldung "Laufzeitfehler 9"... Wenn ich auf Debuggen gehe ist dann "Sheets("Heute").Select" gelb markiert. Manchmal ist auch "Sheets("Heute (3)").Name = "Heute"" gelb markiert. Ich habe das Makro aufgezeichnet und "Heute" ist ein Dateiname und der Name von dem Arbeitsblatt dadrin. "Heute (3)" estand beim aufzeichnen im Power Query. Kann jemand mir dabei helfen, diese Fehlermeldung zu beseitigen?
Und meine zweite Frage wäre: Kann man mit Excel Makros überhaupt so ein "komplexes" Vorhaben wie meins umsetzen? 
Ich möchte mit einer "Excelarbeitsmappe mit Makro", mit einem Makro, mehrere Dateien/Tabellen abrufen, erst 2 Tabellen davon über den Power Query zusammeführen, dann innerhalb von anderen Blättern arbeiten und von diesen Zeilen in andere Blätter kopieren, dann wieder bereits zusammengeführte Tabellen, wieder mit einer weiteren Tabelle zusammenführen (Power Query). Dies ganze möchte ich in einer Schleife laufen lassen, in der sich der Zugriff auf die jeweiligen Datei (Daten Abrufen) nach dem Counter verändert; bspw. im ersten Durchgang gibt er den Pfad "Workbooks.Open "C:\Users\1992j\OneDrive\Desktop\1-" & Format(Now, "dd.mm.yyyy") & ".xlsx""; beim zweiten Durchgang kommt statt der 1 eine 2, beim dritten dann eine 3 und so weiter.

Ich habe mich erst seit ca. 3 Tagen mit Excel VBA beschäftigt und bin Amateur.

Ich danke euch im voraus. 

Gruß Bernd
 

Sub Shop_Makro()
'
' Shop_Makro Makro
'

'
    ActiveWorkbook.Queries.Add Name:="Heute (3)", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Excel.Workbook(File.Contents(""C:\Users\1992j\OneDrive\Desktop\Test VBAAAA\Heute.xlsx""), null, true)," & Chr(13) & "" & Chr(10) & "    Heute_Sheet = Quelle{[Item=""Heute"",Kind=""Sheet""]}[Data]," & Chr(13) & "" & Chr(10) & "    #""Höher gestufte Header"" = Table.PromoteHeaders(Heute_Sheet, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Höher gestufte Header"",{{""A" & _
        "SIN"", type text}, {""Verkäufe"", Int64.Type}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Heute (3)"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Heute (3)]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Heute__3"
        .Refresh BackgroundQuery:=False
    End With
    Sheets("Heute").Select
    Sheets("Heute (3)").Name = "Heute"
    Range("Heute__3[#All]").Select
    ActiveWorkbook.Queries.Add Name:="Heute__3", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Excel.CurrentWorkbook(){[Name=""Heute__3""]}[Content]," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""ASIN"", type text}, {""Verkäufe"", Int64.Type}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
    ActiveWorkbook.Queries.Add Name:="Gestern", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Excel.Workbook(File.Contents(""C:\Users\1992j\OneDrive\Desktop\Test VBAAAA\Gestern.xlsx""), null, true)," & Chr(13) & "" & Chr(10) & "    Gestern_Sheet = Quelle{[Item=""Gestern"",Kind=""Sheet""]}[Data]," & Chr(13) & "" & Chr(10) & "    #""Höher gestufte Header"" = Table.PromoteHeaders(Gestern_Sheet, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Höher gestufte Header" & _
        """,{{""ASIN"", type text}, {""Verkäufe"", Int64.Type}})," & Chr(13) & "" & Chr(10) & "    #""Zusammengeführte Abfragen"" = Table.NestedJoin(#""Geänderter Typ"", {""ASIN""}, #""Heute (3)"", {""ASIN""}, ""Heute (3)"", JoinKind.LeftOuter)," & Chr(13) & "" & Chr(10) & "    #""Erweiterte Heute (3)"" = Table.ExpandTableColumn(#""Zusammengeführte Abfragen"", ""Heute (3)"", {""ASIN"", ""Verkäufe""}, {""Heute (3).ASIN"", ""Heute " & _
        "(3).Verkäufe""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Erweiterte Heute (3)"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Heute__3;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Heute__3]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Heute__4"
        .Refresh BackgroundQuery:=False
    End With
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Gestern;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Gestern]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Gestern"
        .Refresh BackgroundQuery:=False
    End With
    Sheets("Gestern").Select
    ActiveWorkbook.Queries.Add Name:="Rang", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Excel.Workbook(File.Contents(""C:\Users\1992j\OneDrive\Desktop\Test VBAAAA\Rang.xlsx""), null, true)," & Chr(13) & "" & Chr(10) & "    Rang_Sheet = Quelle{[Item=""Rang"",Kind=""Sheet""]}[Data]," & Chr(13) & "" & Chr(10) & "    #""Höher gestufte Header"" = Table.PromoteHeaders(Rang_Sheet, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Höher gestufte Header"",{{""ASIN" & _
        """, type text}, {""Rang Gestern"", Int64.Type}, {""Impressionen Gestern"", Int64.Type}, {""Faktor"", type number}, {""Methode Gestern:"", type any}, {""Column6"", type any}, {""Impressionen Gesamt Gestern:"", type any}, {""Column8"", Int64.Type}, {""Verkäufe Gestern:"", type any}, {""Column10"", type any}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Rang;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Rang]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Rang"
        .Refresh BackgroundQuery:=False
    End With
    ActiveWorkbook.Queries.Add Name:="Werbedaten", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Excel.Workbook(File.Contents(""C:\Users\1992j\OneDrive\Desktop\Test VBAAAA\Werbedaten.xlsx""), null, true)," & Chr(13) & "" & Chr(10) & "    Werbedaten_Sheet = Quelle{[Item=""Werbedaten"",Kind=""Sheet""]}[Data]," & Chr(13) & "" & Chr(10) & "    #""Höher gestufte Header"" = Table.PromoteHeaders(Werbedaten_Sheet, [PromoteAllScalars=true])," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(#""Höher ges" & _
        "tufte Header"",{{""Product"", type text}, {""Entity"", type text}, {""Operation"", type text}, {""Campaign Id"", Int64.Type}, {""Draft Campaign Id"", type text}, {""Portfolio Id"", Int64.Type}, {""Ad Group Id (Read only)"", Int64.Type}, {""Keyword Id (Read only)"", Int64.Type}, {""Product Targeting Id (Read only)"", type text}, {""Campaign Name"", type text}, {""Cam" & _
        "paign Name (Informational only)"", type text}, {""Portfolio Name (Informational only)"", type text}, {""Start Date"", Int64.Type}, {""End Date"", type text}, {""State"", type text}, {""Campaign State (Informational only)"", type text}, {""Campaign Serving Status (Informational only)"", type text}, {""Budget Type"", type text}, {""Budget"", Int64.Type}, {""Bid Optimi" & _
        "zation"", type text}, {""Bid Multiplier"", Percentage.Type}, {""Bid"", type number}, {""Keyword Text"", type text}, {""Match Type"", type text}, {""Product Targeting Expression"", type text}, {""Resolved Product Targeting Expression (Informational only)"", type text}, {""Ad Format"", type text}, {""Ad Format (Informational only)"", type text}, {""Landing Page URL""," & _
        " type text}, {""Landing Page Asins"", type text}, {""Landing Page Type (Informational only)"", type text}, {""Brand Entity Id"", type text}, {""Brand Name"", type text}, {""Brand Logo Asset Id"", type text}, {""Brand Logo URL"", type text}, {""Creative Headline"", type text}, {""Creative ASINs"", type text}, {""Video Media Ids"", type text}, {""Creative Type"", type" & _
        " text}, {""Impressions"", Int64.Type}, {""Verkäufe"", Int64.Type}, {""Click-through Rate"", type number}, {""Spend"", type number}, {""Sales"", Int64.Type}, {""Orders"", Int64.Type}, {""Units"", Int64.Type}, {""Conversion Rate"", Int64.Type}, {""Acos"", Int64.Type}, {""CPC"", type number}, {""ROAS"", Int64.Type}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Werbedaten;Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Werbedaten]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Werbedaten"
        .Refresh BackgroundQuery:=False
    End With
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 15
    ActiveWindow.ScrollColumn = 16
    ActiveWindow.ScrollColumn = 17
    ActiveWindow.ScrollColumn = 18
    ActiveWindow.ScrollColumn = 20
    ActiveWindow.ScrollColumn = 21
    ActiveWindow.ScrollColumn = 22
    ActiveWindow.ScrollColumn = 23
    ActiveWindow.ScrollColumn = 24
    ActiveWindow.ScrollColumn = 25
    ActiveWindow.ScrollColumn = 27
    ActiveWindow.ScrollColumn = 28
    ActiveWindow.ScrollColumn = 29
    ActiveWindow.ScrollColumn = 30
    ActiveWindow.ScrollColumn = 31
    ActiveWindow.ScrollColumn = 32
    ActiveWindow.ScrollColumn = 33
    ActiveWindow.ScrollColumn = 34
    ActiveWindow.ScrollColumn = 35
    ActiveWindow.ScrollColumn = 36
    ActiveWindow.ScrollColumn = 37
    ActiveWindow.ScrollColumn = 38
    Range("AN2").Select
    Selection.Copy
    Sheets("Rang").Select
    Range("Rang[[#Headers],[Faktor]]").Select
    ActiveSheet.Paste
    Range("E23").Select
    Sheets("Werbedaten").Select
    Application.CutCopyMode = False
    Range("AO2").Select
    Selection.Copy
    Sheets("Rang").Select
    Range("Rang[[#Headers],[Column8]]").Select
    ActiveSheet.Paste
    Range("Rang[[#Headers],[4]]").Select
    Application.CutCopyMode = False
    Selection.Style = "Akzent2"
    Range("Rang[[#Headers],[650]]").Select
    Selection.Style = "Akzent2"
    Range("Rang").Select
    Range("J2").Activate
    Selection.Copy
    Sheets("Gestern").Select
    Range("F1").Select
    ActiveSheet.Paste
    Range("G20").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.SmallScroll Down:=-15
    Sheets("Rang").Select
    Range("Rang[#All]").Select
    Range("J4").Activate
    Selection.Copy
    Sheets("Gestern").Select
    Range("F1").Select
    ActiveSheet.Paste
    Range("G11").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWorkbook.Save
    ActiveWorkbook.Save
End Sub


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Laufzeitfehler 9;Makro: Daten abrufen, viele Arbeitsblätter, Power Query, Zusammenführen
16.08.2022 16:09:46 Bernd
Solved
16.08.2022 18:02:27 ralf_b
NotSolved