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.

Textdatei importieren mit Makro
#1
Hallo zusammen,
ich habe ein Makro aufgezeichnet und dieses in einen CommandButton eingebettet. Es soll eine PLS-Datei in ein Excelsheet "Daten" Zelle G8 engelesen werden.
Die PLS-Datei heißt aber jeweils so wie in Zelle Sheet "Daten" ZelleA2. Diese wird vorher manuell überschrieben.
Ich habe das folgende Makro erstellt, bekomme aber schon in der ersten Zeile einen Syntaxfehler:

Private Sub CommandButton1_Click()
    With ActiveSheet.QueryTables.Add(Connection:="C:\Daten\Excel;" & Pruefung.pls, Destination:=Range("G8"))
        .CommandType = 0
        .Name = "Pruefung.pls"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub


Kann mir jemand helfen und kann man das Makro nicht kürzen?? Schon mal herzlichen Dank im Voraus.
Antworten Top
#2
Hallo Fasedamo,

da ist ein falsches Zeichen drin:
With ActiveSheet.QueryTables.Add(Connection:="C:\Daten\Excel\" & Pruefung.pls, Destination:=Range("G8"))

Wozu das Makro kürzen? Ich würde nicht erwarten, dass es durch die zusätzlichen Zeichen langsamer wird. Aber es wird auf jeden Fall sicherer. Solltest Du einen der Parameter weglassen, kannst du ein nicht gewünschtes Ergebnis bekommen...

Gruß,
Lutz
Antworten Top
#3
Hallo Lutz,
leider funktioniert es immer noch nicht . Ich bekomme beim Dateinamen Pruefen.pls einen kompilierungsfehler:


[
Bild bitte so als Datei hochladen: Klick mich!
]


Schöne Grüße
Antworten Top
#4
Moin!
(23.03.2021, 13:59)Fasedamo schrieb: Die PLS-Datei heißt aber jeweils so wie in Zelle Sheet "Daten" ZelleA2.

Teste mal:
Code:
With ActiveSheet.QueryTables.Add(Connection:="C:\Daten\Excel\" & Sheets("Daten").Range("A2") & ".pls", Destination:=Range("G8"))
Wenn auch die Extension in der Zelle steht, dann musst Du & ".pls" entfernen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Der Fehler ist:

"Variable ist nicht definiert"
Huh
Antworten Top
#6
Ja, und ich habe Dir gezeigt, wie es geht …
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Ja aber es funktioniert leider nicht:

Langzeitfehler 1004
"Anwendeungs- oder objektdefininierter Fehler" 


Irgendwo ist noch der Wurm drin Undecided
Antworten Top
#8
Hallöchen,

ich könnte mir durchaus vorstellen, dass Excel was dagegen hat, zwei QT's in den gleichen Bereich zu setzen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
So funktioniert es:

Private Sub CommandButton1_Click()
     With ActiveSheet.QueryTables.Add(Connection:="text;C:\Daten\Excel\" & Sheets("Daten").Range("A2").Value & ".pls", Destination:=Range("G8"))
         .Name = "Pruefung"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    
 End Sub



Trotzdem danke für die Hilfestellung 28 28
Antworten Top


Gehe zu:


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