Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
*.cvs Datei einlesen
Frank
Hallo alle zusammen,
ich habe heute ein Anliegen, dass ich gerade nicht selbst lösen kann. Ich zeichne ein Makro auf: Excel -> Daten -> aus Text. Dann öffnet sich ein Dialog und ich wähle eine beliebige *.csv Datei aus. Danach öffnet sich der Konvertierungs-Assistent und ich nehme gewisse Einstellungen vor. Danach klicke ich auf fertig stellen. Nun zu meinen Fragen:
Wie realisiere ich das sich das Fenster Datei öffnen öffnet und csv voreingestellt ist?
Wie kann ich dann die automatische Konvertierung durchführen, die sonst der Konvertierungs-Assistent durchführt?

Das ist der aufgezeichnete Code, allerdings sollte die Datei dynamisch sein, je nachdem welche ich auswähle.
Sub Makro1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Dokumente und Einstellungen\Administrator\Desktop\VBA Tests\klo.csv", _
Destination:=Range("$A$1"))
.Name = "klo"
.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 = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 2, 1, 2, 2, 2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Ich hoffe es kann mir jemand helfen, im Forum habe ich nichts über csv Dateien gefunden.
Gruß, Frank

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: *.cvs Datei einlesen
29.09.2009 20:26:50
PeTeR
Hallo Frank,
mit dem Befehl GETOPENFILENAME kannst du den Datei-Öffnen-Dialog vorweg anzeigen. Dein Makro sieht dann in etwa so aus:
Datei=Application.getopenfilename("*.csv, *.csv",.......)
With ActiveSheet.QueryTables.Add(Connection:= Datei ....
Viel Erfolg
PeTeR
AW: *.cvs Datei einlesen
29.09.2009 20:54:51
Frank
Okay danke, dass hilft mir erstmal weiter.
Gruß,Frank
so funktioniert es nicht...
29.09.2009 21:16:58
Frank
Es kommt die Fehlermeldung: Der Zielbereich befindet sich nicht auf dem Arbeitsblatt, auf dem die Abfragetabelle erstellt wurde. Was ist zu ändern?
Sub Öffnen()
Dim sCsvFile As String
ChDir "\"
ChDrive "C:\"
Dateiname = Application.GetOpenFilename _
("CSV-Dateien (*.csv),*.csv,Textdateien (*.txt),* .txt,Alle Dateien (*.*),*.*") 'Das  _
Dialogfenster
If Dateiname = False Then Exit Sub
sCsvFile = Dateiname
'MsgBox "Ihre Auswahl:" & vbNewLine & Dateiname
With ActiveSheet.QueryTables.Add(Connection:=sCsvFile, _
Destination:=Worksheets(1).Cells(1, 1))
'.Name = "klo"
.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 = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 2, 1, 2, 2, 2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Gruß, Frank
Anzeige
AW: so funktioniert es nicht...
30.09.2009 00:40:22
fcs
Hallo Frank,
beim Starten des Makros ist das 1. Tabellenblatt wahrscheinlich nicht das aktive tabellenblatt. Deshalb kommt es zur Fehlermeldung.
Passe die folgende Zeile an, dann sollte es funktionieren. Wenn die Querrytable immer im Worksheet(1) ausgeben werden soll die 1. Variante, wenn auf dem aktiven Blatt, dann die 2. Variante.
Gruß
Franz
  With Worksheets(1).QueryTables.Add(Connection:=sCsvFile, _
Destination:=Worksheets(1).Cells(1, 1))
oder
With ActiveSheet.QueryTables.Add(Connection:=sCsvFile, _
Destination:=Cells(1, 1))

Anzeige
AW: so funktioniert es nicht...
30.09.2009 09:13:30
Frank
Guten morgen Franz,
also ich habe soeben beide Varianten ausprobiert. Nun kommt eine andere Meldung:
Anwendungs_ oder objektdefinierter Fehler. - in den Zeilen
With Worksheets(1).QueryTables.Add(Connection:=sCsvFile, _
Destination:=Worksheets(1).Cells(1, 1))
oder
With ActiveSheet.QueryTables.Add(Connection:=sCsvFile, _
Destination:=Cells(1, 1))
Hast du noch eine andere Idee, wie dieses Problem zu lösen ist?
Gruß, Frank
AW: so funktioniert es nicht...
30.09.2009 13:41:52
fcs
Hallo Frank,
da hatte sich irgendwann der Datentyp für die datenverbindung verabschiedet. War mir garnicht aufgefallen.
Gruß
Franz

'MsgBox "Ihre Auswahl:" & vbNewLine & Dateiname
With Worksheets(1).QueryTables.Add(Connection:="TEXT;" & sCsvFile, _
Destination:=Worksheets(1).Range("A1"))
'.Name = "klo"

Anzeige
AW: so funktioniert es nicht...
30.09.2009 20:28:20
Frank
Hallo Franz,
danke für deine Mühen, aber ich kann nicht A1 nehmen, da nach dem Import eine erneute Abfrage kommen soll, ob noch eine csv eingelesen werden soll. Und dafür muss dieser Verweis dynamisch bleiben, sprich mit Cells. Der Syntax muss doch irgendwie möglich sein...
Gruß, Frank
Ich hab's...
30.09.2009 20:48:10
Frank
With Worksheets(1).QueryTables.Add(Connection:="TEXT;" & sCsvFile, Destination:=Worksheets(1).Cells(1, 1))
es fehlte... Connection:="TEXT;"
So und nun heiter weiter, vielen Dank Franz, war eine schwere Geburt :-)
Gruß, Frank.

245 Forumthreads zu ähnlichen Themen


Ich möchte eine Textdatei per VBA einlesen. Untenstehender Versuch bringt die Fehlermeldung:
Excel kann auf die Datei in '' nicht zugreifen.
Die Datei ist unter Umständen schreibgeschützt oder verschlüsselt.
Woher weiß das Makro das, wo ich noch gar keinen Dateinamen angegeben habe...
Anzeige

Hallo,
gibt es per VBA eine Möglichkeit alle Excel Dateien eines Verzeichnisses inkl. der jeweils enthaltenen Arbeitsblattnamen einzulesen (der Name der Exceldatei sollte ohne .xls ausgegeben werden), so dass nachfolgendes Ergebnis erzeugt wird:
Dateiname.......Arbeitsblattname
Date...

Hallo Leute
Ich möchte gerne von einer ComboBox1 "UF" die Daten vom Blatt "Umbauplan" A4:A11,A15:A21 die Daten einlesen.
Es handelt sich hierbei um ein Datum, in Form von TTTTT TT MM JJ
Könnte mir dazu bitte jemand weiterhelfen.
Danke Heinz
Anzeige

Hallo Forum,
ich lese meine vergebenen Bereichsnamen aus mit
Sub Namen_lesen_und_Bereich_angeben() For n = 1 To Names.Count Cells(n, 1) = Names(n).Name Cells(n, 2) = Names(n).Value Next n End Sub
Anschließend kopiere ich das Register in eine andere Datei und versuche dort die Be...

Hallo,
ich brauche eure Hilfe?
Ich würde gern Werte aus einer Text-Datei, welche 2-reihig jeweils 50.000-60.000 Zeilen enthält, in eine bereits geöffnete Arbeitsmappe einfügen. Die 2 Reihen sind durch einen Tab getrennt.
Zudem kommt, dass ich gern die Text-Datei über ein Dialogfe...

Moin,
ich habe eine Frage, warum kommt bei folgendem Code ein Fehler? Ich habe den Einleseteil mit dem Makrorecorder aufgenommen, den Rest selbst gemacht.
Interessanter Weise kommt der Fehler das die Datei tab1.xls nicht existiert. Die Datei existiert ja auch nicht, es soll die TextDat...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige