Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1144to1148
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
Inhaltsverzeichnis

Datenimport, Tab und Leerzeichen

Datenimport, Tab und Leerzeichen
Stu
Hallo
ich habe folgendes Problem:
Ich importiere Klimadaten mit einem Makro nach Excel. Die Daten sind per Tabstop getrennt, und werden richtig eingelesen und in ihre Spalten geschrieben. Probleme bereit mir der Header in dem die Standortdaten mit mehreren Leerzeichen getrennt werden. Diese unterschiedlich Trennung (einmal Tapstop einmal Leerzeichen) versuche ich zu beherschen.
Ich möchte also erst die 4 Zeilen Header per Leerzeichentrennung einlesen und dann den Rest wie im Code umgesetzt per Tabstopp einlesen. Ich komme auf keinen brauchbaren Ansatz...
Tausend Dank für jeden Tip
Lg
Stu
Hier erstmal mein Code um die Tabstopp getrennten Daten einzulesen:
Sub import()
Dim strdecsep As String
Dim strtsdsep As String
Dim blnsyssep As Boolean
Dim strimportdatei As String
strimportdatei = Application.GetOpenFilename("klimadaten(*.dat),*.dat")
With Application
strdecsep = .DecimalSeparator
strtsdsep = .ThousandsSeparator
blnsyssep = .UseSystemSeparators
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = False
End With
With ActiveSheet.QueryTables.Add(Connection:="text;" & strimportdatei, Destination:=Range("a1")) _
On Error Resume Next
.RefreshStyle = xlOverwriteCells
.TextFileTabDelimiter = True
.Refresh BackgroundQuery:=False
End With
With Application
.DecimalSeparator = strdecsep
.ThousandsSeparator = strtsdsep
.UseSystemSeparators = blnsyssep
End With
End Sub

AW: Datenimport, Tab und Leerzeichen
23.03.2010 19:01:27
Oberschlumpf
Hi
Ist die Anzahl der Leerzeichen als Trenner immer gleich?
Dann versuch es mal mit diesem Code (ungetestet):
Sub sbLeerTrenn()
Dim lstrInhalt As String, lstrSplit() As String, liZaehler As Integer, liIndex As Integer,  _
liSpalte As Integer, liZeile As Integer
liZaehler = 1
liSpalte = 1
liZeile = 1
Open "DeinPfad\DeineTxtDatei" For Input As #1
Do Until liZaehler = 4
Line Input #1, lstrInhalt
'hier wird angenommen, es sind immer 4 Leerzeichen
'wenn mehr oder weniger, dann passe den ersten Teil mit Leerzeichen an
lstrInhalt = Replace(lstrInhalt,"    "," ")
lstrSplit = Split(lstrInhalt, " ")
For liIndex = LBound(lstrSplit) To UBound(lstrSplit)
Cells(liZeile, liSpalte).Value = lstrSplit(liIndex)
liSpalte = liSpalte +1
Next
liZeile = liZeile + 1
liZaehler = liZaehler + 1
Loop
Close
End Sub
Hilfts?
Ciao
Thorsten
Anzeige
AW: Datenimport, Tab und Leerzeichen
24.03.2010 18:12:24
Stu
Hallo Oberschlumpf,
sorry das ich erst jetzt antworte, bin aber erst dazugekommen.
Also dein Code funktioniert soweit perfekt. Was mir bleibt ist das Problem wie ich deinen Code in meinen Code integrieren kann.
In deinem Code wird die Importdatei mit
Open "DeinPfad\DeineTxtDatei" For Input As #1
angesprochen.
In meinem Code öffne ich mit
strimportdatei = Application.GetOpenFilename("klimadaten(*.dat),*.dat")
erstmal ein Auswahlfenster um die Import-Datei zu suchen.
Nachdem der User nun die Importdatei ausgewählt hat, sollte nun dein Code ablaufen und die ersten 4 Zeilen importieren. Dann aber sollte mein Code weiterlaufen und die vielen weiteren Klimadaten importieren. Nun stellt sich mir als Amateur hier die Frage wie ich
strimportdatei = Application.GetOpenFilename("klimadaten(*.dat),*.dat")
so anpassen kann, dass die Definition "For Input As #1
aus deiner Codezeile auch in meinem Code funktioniert.
Wenn du auch hier einen Trick kennst.... Super
Danke
Stu
Anzeige
AW: Datenimport, Tab und Leerzeichen
24.03.2010 23:21:59
Oberschlumpf
Hi
Eine Bsp-Txt-Datei, die importiert werden soll, und eine Bsp-Excel-Datei, in der du zeigst, wie die Daten aus der txt-Datei aussehen sollen, wäre schön.
Denn dein Code importiert die Datei von Anfang bis Ende.
Ohne Bsp-Dateien weiß ich auch noch leider keine Lösung.
Ciao
Thorsten
AW: Datenimport, Tab und Leerzeichen
25.03.2010 11:17:33
Oberschlumpf
Moin
Nein, dein Problem wird noch nicht klarer.
Ich habe kein Excel 2007.
Und so geht es bestimmt - auch nach ca 3 Jahren Einführung von Office 2007 - auch vielen anderen Excel-Nutzern.
Wieso denkt ihr daran nie?
Ciao
Thorsten
AW: Datenimport, Tab und Leerzeichen
25.03.2010 11:57:04
Stu
Das Problem mit der Excelversion war mir nicht bewusst... hier nochmal die Exceldatei in der Excel 2003 Version
https://www.herber.de/bbs/user/68798.xls
Danke
Stu
AW: Datenimport, Tab und Leerzeichen
25.03.2010 13:11:53
Oberschlumpf
is in Arbeit...vllt ne halbe std oder so
AW: Datenimport, Tab und Leerzeichen
25.03.2010 13:53:13
Oberschlumpf
so
Hi Stu
Versuch es mal hiermit:
https://www.herber.de/bbs/user/68799.xls
Starte das Makro in Tabelle 1, weil Tabelle 1 = leer und weil das Makro immer im aktuellen Blatt starten würde.
Mein Ergebnis kommt deinem Wunsch in Tabelle 2 sehr nahe.
Alles fast gleich - aber - in Tabelle 2 in Zeile 4 haben deine Spaltenüberschriften noch führende Leerzeichen.
Bei mir gibt es keine führenden Leerzeichen.
Also ist meine Lösung vielleicht sogar noch besser als dein Wunsch ;-)
Klappt es denn nun so, wie du willst, oder hab ich noch etwas falsch verstanden, oder übersehen?
Ciao
Thorsten
Anzeige
AW: Datenimport, Tab und Leerzeichen
25.03.2010 14:08:23
Stu
Super, tausend Dank, du hast mir echt viel geholfen! Ich finde es echt genial wie schnell und sauber du das in VBA umgesetzt hast.
tausend Dank und einen schönen Tag
Stu
freut mich doch :-)...dk für feedback..owT
25.03.2010 14:23:20
Oberschlumpf

218 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige