Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro-Problem
#1
Hallo, ich bin neu hier, weil ich mit meinem Latein gerade an eine Grenze stoße. Bin aber auch wahrlich kein Experte Wink

Ich möchte Daten aus einer CSV-Datei importieren und später diese durch erneute Ausführung des Makros die Daten aktualisieren.
Also habe ich mir ein Makro geschrieben, der die Daten aus der CSV-Datei rüberholt. Wenn ich allerdings erneut das Makro ausführe bekomme ich folgende Fehlermeldung:

Laufzeitfehler '-2147024809 (80070057)
Eine Abfrage mit dem Namen "fills (4)" ist bereits vorhanden.

Die auszulesende CSV-Datei heißt fills.csv

Wo liegt der Fehler?

Vielen Dank @ll!
Antworten Top
#2
Hola,

ich könnte mir vorstellen dass es bei Problemen mit dem Makro von Vorteil wäre, das Makro zu kennen.
Ansonsten hilft nur die Fehlermeldung zu googeln.
Gruß,
steve1da
Antworten Top
#3
Durchs probieren bin ich jetzt bei fills(10) angelangt Huh  woher kommt der Name fills (10) ? Was wird da immer wieder mal weiter gezählt, aber wenn ich das Makro ein 2. mal drüber laufen lasse nicht?

Herzlichen Dank für Deine Antwort!

 Sub Tabelle()
'
' Tabelle Makro
'

'
    ActiveWorkbook.Queries.Add Name:="fills (10)", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Csv.Document(File.Contents(""C:\fills.csv""),[Delimiter="","", Columns=11, Encoding=1252, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & "    #""Typ ändern"" = Table.TransformColumnTypes(Quelle,{{""Column1"", type text}, {""Column2"", type text}, {""Column3"", type text}, {""Column4"", type text}, {""Column5"", type text}, {""Column6" & _
        """, type text}, {""Column7"", type text}, {""Column8"", type text}, {""Column9"", type text}, {""Column10"", type text}, {""Column11"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Typ ändern"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""fills (10)"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [fills (10)]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "fills__10"
        .Refresh BackgroundQuery:=False
    End With
    Application.CommandBars("Queries and Connections").Visible = False
End Sub
Antworten Top
#4
Zitat:Ich möchte Daten aus einer CSV-Datei importieren


Warum per Makro und nicht per PowerQuery (Tab Daten - Aus Text/csv).

Zum Aktualisieren später einfach Rechtsklick -> Aktualisieren.
Cadmus
Antworten Top
#5
Sehr gern wenn ich wüsste wie. Bin da eher Anfänger!

Das ist ja das Tool mit dem ich quas ja auch das Makro aufgezeichnet habe und die Daten ins Excel geholt habe.
Wo mache ich dann den Rechtsklick um eine neuere Version der csv-Datei zu importiere?


Vielen Dank für Deine Antwort!
Antworten Top
#6
Hallo,

du erstellst mit dem Makro immer wieder neue Abfragen.

Richte mit PQ eine Abfrage ein, die kannst Du dann per Makro aktualisieren.

z. B. so:
ActiveWorkbook.Connections("fills").Refresh

Das kannst Du aber auch mit dem Makrorekorder aufzeichnen.
Gruß
Michael
Antworten Top
#7
Ich habs hinbekommen.

Ich danke Euch für Eure Antworten - das ist ja easy, ja wenn man weiß, dass es so geht Wink

Herzlichen Dank Euch!!!!!!!
Antworten Top
#8
Du kannst auch in den Abfrageeigenschaften eine automatische Aktualisierung einrichten, z.B. beim Öffnen der Datei.


   
Cadmus
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste