Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
csv-Datei importieren
24.07.2013 09:49:59
Ann
Hallo Leute,
ich weiß, dass es zu diesem Thema schon etliche Beiträge gibt, aber ich werd aus denen leider nicht schlau. Ich hab eine csv-Datei Namens "Messdaten1" die in dem gleichen Ordner liegt wie meine Exceldatei. Jetzt soll das Programm die Datei anhand des Namens suchen und dann in das erste Arbeitsblatt importieren. Die Daten sollen durch Kommas getrennt werden.
Sub ImportWoche()
SearchInFolder ThisWorkbook.Path
End Sub
Private Sub SearchInFolder(ByVal Folderspec As String)
Dim StTyp As String
Dim FSO As Object
Dim FI As Object
Dim n As Integer
Dim i As Integer
Set FSO = CreateObject("Scripting.Filesystemobject")    'Zugriff auf das Dateisystem des  _
Computers
If Not FSO.FolderExists(Folderspec) Then
MsgBox Folderspec & "Datei ist nicht vorhanden."
Set FSO = Nothing
Exit Sub
End If
StTyp = "csv"
StWort = "Messdaten1"
For Each FI In FSO.GetFolder(Folderspec).Files
If UCase(FSO.GetExtensionName(FI)) = UCase(StTyp) Then
For i = 1 To Len(FI)
If UCase(Mid$(FI, i, 10)) = UCase(StWort) Then
ActiveWorkbook.Import FI, _
ImportMap:=Nothing, Overwrite:=True, Destination:=Sheets
("Tabelle1").Cells(1, 1)
GoTo Schleife
End If
Next i
End If
Schleife:
Next
End Sub
Das Programm funkioniert soweit. Nur bei dem Befehl Import bekomm ich ne Fehlermeldung :(. Vielen Dank schonmal für eure Hilfe!
Ann

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: csv-Datei importieren
24.07.2013 11:39:13
fcs
Hallo Ann,
den folgenden Teil musst du korigieren. Da stimmt die Syntax/Zeilentrennung nicht - zumindest so wie sie hier im Forum angeziegt wird..
                ActiveWorkbook.Import FI, _
ImportMap:=Nothing, Overwrite:=True, _
Destination:=Sheets("Tabelle1").Cells(1, 1)
Ansonsten wäre es hilfreich, wenn du uns den Text der Fehlermeldung mitteils.
Gruß
Franz

AW: csv-Datei importieren
24.07.2013 11:54:41
Ann
Ja genau... aber ich weiß nicht wie ich den Befehl für csv-Dateien (für xml funktionierts) ändern muss.
Ich bekomm die Fehlermeldung:
Laufzeitfehler '438':
Objekt unterstützt diese Eigenschaft oder Methode nicht

Anzeige
AW: csv-Datei importieren
24.07.2013 15:44:18
fcs
Hallo Ann,
du hast die falsche Methode erwischt, um Text-Dateien zu importieren. Hier muss eine Querytable generiert werden.
Wenn du den Makrorekorder bemühst und via Menü Daten--Externe Daten abrufen--Aus Text mit allen gewünschten Optionen aufzeichnest, dann hast du das Grundgerüst und muss nur noch den aufgezeichneten Dateinamen durch die Variable ersetzen.
Dein Makro muss dann am Ende etwa wie folgt aussehen, je nach gewählten Optionne bei den Parametern.
Gruß
Franz
Private Sub SearchInFolder(ByVal Folderspec As String)
Dim StTyp As String
Dim FSO As Object
Dim FI As Object
Dim n As Integer
Dim i As Integer
Set FSO = CreateObject("Scripting.Filesystemobject")    'Zugriff auf das Dateisystem des _
Computers
If Not FSO.FolderExists(Folderspec) Then
MsgBox Folderspec & "Datei ist nicht vorhanden."
Set FSO = Nothing
Exit Sub
End If
StTyp = "csv"
StWort = "Messdaten1"
For Each FI In FSO.GetFolder(Folderspec).Files
If UCase(FSO.GetExtensionName(FI)) = UCase(StTyp) Then
For i = 1 To Len(FI)
If UCase(Mid$(FI, i, 10)) = UCase(StWort) Then
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & FI, Destination:=Range("Tabelle1!$A$1"))
.Name = "CSV_Import"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001   'Unicode
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True     'ggf. anderres Trennzeichen auf True  _
Setzen
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
GoTo Schleife
End If
Next i
End If
Schleife:
Next
End Sub

Anzeige
AW: csv-Datei importieren
26.07.2013 11:31:04
Ann
Vielen Dank für deine Hilfe!

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige