Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
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

Tab-Getrennte Datei in Excel einlesen

Tab-Getrennte Datei in Excel einlesen
12.01.2022 16:46:30
Markus
Guten Abend zusammen :)
ich hab folgendes Problem:
Ich habe eine Datei OHNE Endung. Deren Inhalt sind Daten, die jeweils durch ein Tab getrennt sind.
Diese Dateien will ich in Excel einladen / öffnen, was auch funktioniert.
ich hab mal mit den Recorder folgendes aufgezeichnet:
Range("A1").Select
ChDir "C:\Users\TESTUSER\TESTVERZEICHNIS"
Workbooks.OpenText Filename:= _
"C:\Users\TESTUSER\TESTVERZEICHNIS\testdatei SAP" _
, Origin:=1250, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1), Array( _
28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array(33, 1), Array(34, 1), _
Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), Array(40, 1), Array( _
41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array(46, 1), Array(47, 1), _
Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1), Array(53, 1), Array( _
54, 1), Array(55, 1), Array(56, 1), Array(57, 1), Array(58, 1), Array(59, 1), Array(60, 1), _
Array(61, 1), Array(62, 1), Array(63, 1), Array(64, 1), Array(65, 1), Array(66, 1), Array( _
67, 1), Array(68, 1), Array(69, 1), Array(70, 1), Array(71, 1), Array(72, 1), Array(73, 1), _
Array(74, 1), Array(75, 1), Array(76, 1), Array(77, 1), Array(78, 1), Array(79, 1), Array( _
80, 1), Array(81, 1), Array(82, 1), Array(83, 1), Array(84, 1), Array(85, 1), Array(86, 1), _
Array(87, 1), Array(88, 1), Array(89, 1), Array(90, 1), Array(91, 1), Array(92, 1), Array( _
93, 1), Array(94, 1), Array(95, 1), Array(96, 1), Array(97, 1), Array(98, 1), Array(99, 1), _
Array(100, 1), Array(101, 1), Array(102, 1), Array(103, 1), Array(104, 1), Array(105, 1), _
Array(106, 1), Array(107, 1), Array(108, 1), Array(109, 1), Array(110, 1), Array(111, 1), _
Array(112, 1), Array(113, 1)), TrailingMinusNumbers:=True
Die Frage ist: Gibt es einen schlaueren Weg, solche Daten in Excel zu importieren.
Der Ansatz: Datei mit Dateiendung csv oder txt zu versehen und dann direkt zu öffnen hat nicht hingehauen.
Freu mich über jeden Hinweis.
LG
Markus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tab-Getrennte Datei in Excel einlesen
12.01.2022 17:23:34
onur
Die Datei zu posten hätte mehr gebracht, als das Makro.
AW: Tab-Getrennte Datei in Excel einlesen
12.01.2022 17:33:29
volti
Hallo Markus,
vielleicht reicht Dir diese Idee....
Code:

[Cc]

Sub TextDatei_Einlesen() Dim sPfad As String, sData As String Dim sArr1() As String, sArr2() As String Dim i As Long ' Application.ScreenUpdating = false ' nur bei sehr vielen Zeilen sPfad = "C:&bsol;Users&bsol;TESTUSER&bsol;TESTVERZEICHNIS&bsol;testdatei SAP" If Dir$(sPfad) <> "" Then ' Ist Datei vorhanden? Open sPfad For Input As #1 ' Datei öffnen sArr1 = Split(Input(LOF(1), #1), vbCrLf) ' Daten in Array einlesen Close #1 ' Datei schließen For i = 0 To UBound(sArr1) ' Daten ausgeben sArr2 = Split(sArr1(i), vbTab) ' ab Zelle A1 Range("A1").Offset(i, 0).Resize(1, UBound(sArr2) + 1) = sArr2 Next i End If ' Application.ScreenUpdating = True End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Tab-Getrennte Datei in Excel einlesen
12.01.2022 18:08:10
Yal
Hallo Markus,
ich würde die Datei mit Power Query anzapfen:
_ Menü "Daten", "Neue Abfrage", "Aus Datei", "Aus Text"
_ Parameter pflegen
_ auf "Bearbeiten" gehen und die Basis-Transformation vornehmen, wie z.B. Joinen, Gruppieren, die 12 Monatsspalten entpivotieren (die geilste Fkt von Power Query! da schmeisst Du VBA durchs Fenster)
_ ...
VG
Yal
AW: Tab-Getrennte Datei in Excel einlesen
12.01.2022 22:40:16
Markus
Nabend allen und vielen Dank für eure Antworten.
Ich antworte mal in einem Thread auf die 3 Antworten in der Reihenfolge, wie ihr sie zeitlich geschrieben habt:
Onur:
Ja, die Datei mit reinstellen wäre die beste Lösung gewesen. Sie enthält aber vertrauliche Daten. Und diese Daten, auf Grund der Menge als Dummy nachzubauen erschien mir sinnlos. Wenn dann richtig oder gar nicht. Und aus Datenschutzgründen dann eben die letzte Lösung.
Karl-Heinz:
Ich hab gehofft, das ich so eine Hilfestellung bekomme. Ich beschäftige mich schon ewig mit VBA. Aber das Thema Arrays habe ich immer umschifft :). Auch weil ich diese Funktion so im Tagegeschäft nicht brauche. Aber ich nehm dein Beispiel zum Anlass, mich mal ein wenig mehr mit dem Thema Arrays zu beschäftigen.
Das wird mir sehr gut weiter helfen. Vielen herzlichen Dank.
Yal:
An PQ hab ich auch schon gedacht und auch getestet. Mit der Funktion arbeite ich auch sehr viel. Der Punkt ist in dem Fall aber, das dies in dem Fall nicht geht, weil bei PQ die Spalten für eine codegesteuerte Übergabe ja sehr genau definiert werden müssen und auf keinen Fall sich Veränderung in der Quelle ergeben dürfen. Sonst fährt der Code sehr schnell gegen die Wand. Und da der Code extrem flexible gehalten werden muss ist das hier ausgeschieden.
Da ist das reinholen der Daten über VBA die charmantere Lösung. Persönlich finde ich, das PQ da für ein bisschen Datenimport schon wieder viel zu mächtig ist.
Zumal der Export in PQ sowie über VBA erfolgt wäre und nicht zu Fuss über Datenimport.
Euch allen vielen Dank, das ihr die Zeit gefunden habt, mir zu antworten.
Speziell noch einen Gruss an Karl-Heinz. Keine Ahnung, wie oft du mir hier schon weiter geholfen hast. Vielen Dank dafür.
Gruß
Markus
Anzeige
PQ Spalten-Flexibel gestalten
13.01.2022 09:50:40
Yal
Hallo Markus,
vielen für deine ausführliche Rückmeldung.
Ja, PQ hat "diese" Nachteil, dass es fast nur mit festem Spaltenanzahl funktioniert.
2 Wege herum:
_ Warum hat die Quelle eine wilkürliche Spaltenanzahl? ist es notwendig? kann man das beeinflüssen?
_ die Anzahl von Spalten in PQ wird oft ab der 2te Aktion ein Problem, da wo die Typen erkannt werden sollen. Man kann diese Aktion löschen und eine Entpivotierung auf die feste Spalte, die die immer da sind, einrichten ("Andere Spalten entpivotieren"). Dann hat man ein festen Anzahl an Spalten und kann stabil weiter arbeiten. Z.b. Typerkennung laufen lassen.
"zu mächtig" kenne ich nicht. Ich kenne nur zu kompliziert, zu schwerfällig, zu langsam, ... Trifft keines auf PQ vollständig zu.
VG
Yal
Anzeige
AW: Tab-Getrennte Datei in Excel einlesen
15.01.2022 09:40:04
volti
Hallo zusammen,
Frage ist zwar schon gelöst, hier aber trotzdem mal ergänzend eine Version über die Zwischenablage.
Und wenn es sich bei den Nutzdaten um Zahlen handeln sollte, mit denen gerechnet werden sollen, wird hier auch gleich das Zahlenformat berücksichtigt.
Code:

[Cc]

Sub TextDatei_Einlesen() Dim sPfad As String sPfad = "C:&bsol;Users&bsol;TESTUSER&bsol;TESTVERZEICHNIS&bsol;testdatei SAP" If Dir$(sPfad) <> "" Then ' Ist Datei vorhanden? Open sPfad For Input As #1 ' Datei öffnen With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText Replace(Input(LOF(1), #1), ",", ".") .PutInClipboard ' Daten in Zwischenablage End With Close #1 ' Datei schließen Range("A1").Select ' Startfeld wählen ActiveSheet.Paste ' Daten einfügen End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige