*.txt-files in Excel einlesen

Hallo Excel-Götter,

ich habe ca. 400 Messfiles.
Ein file besteht aus 1 Spalte mit Werten, die 2. Spalte ist nummeriert
von 1-40. Also Tabellenbereich wäre A1 bis B40 (wenns den Excel wär)

Ich möchte jetzt immer die 1.Spalte ins Excel importieren, zum Schluss hätte ich dann 400 Spalten im Excel.

Von Hand ja kein Problem…aber Zeitaufwand…
Und wenn der Kollege wieder mit Messfiles auftaucht…
Oh je…

Hat jemand ne Idee, wie ich das hinkrieg und oder wo ich
sowas Nachlesen kann?

Besten Dank vorab schon,

Gruß vom

Wolpi

Hallo!
Das ist ein Klassischer fall für die VBA Programmierung.
Man Aktiviere unter der Ansicht/Symbolleisten die Visual Basic leiste.
Danach gibt es ein Symbol welches sich VisualBasic-Editor nennt. In diesem Editor kann VBA Geschrieben werden. danach wird es etwas komplizierter und hängt von der Textdatei ab. Eine möglichkeit von vielen wäre z.B. follgendes Code Beispiel in ein Modul einzufügen.

Public Sub Einleser()
Dim Text1 as String
Public Zahl1 as String
Open „DATEI1.txt“ For Input As #1 ’ Datei zum Einlesen öffnen.
Do While Not EOF(1) ’ Schleife bis Dateiende.
Input #1, Text1, Zahl1 ’ Daten in zwei Variablen einlesen.
Debug.Print Text1, Zahl1 ’ Daten im Direktfenster ausgeben.
Loop
Close #1 ’ Datei schließen
End Sub

Wie wird ein Modul erzeugt?
Gehen Sie im Editor auf VBA-Project und aktivieren sie diesen Text. Danach gehen sie unter dem Menü Einfgen auf Modul. Ein Modul wurde eingefügt. Drcken Sie nun die Taste F4 und ändern Sie den Namen von Modul1 in mEinleser.
Kopieren Sie nun oben stehenden Text in das Weisse neu eröffnete Fenster.
Kehren sie nun über die Startleiste zu Microsoft excel Datenblatt zurück.
Dort können Sie nun Steuerelement Toolbox Aktivieren. Fügen Sie Nun ein Neues Steuerelement hinzu und zwar einen Button/Befehlsschaltfläche.
Nun Klicken Sie mit der linken Maustaste auf den Knopf, so dass ein Kontextmenü erscheint. Wählen Sie dort den Punkt Eigenschaften aus. Geben Sie nun Unter der Rubrik (Name) den Namen cbStart ein. (cb für Command Button, Start für Programmstart.)Danach können Sie unter der Caption Eigenschaft den Namen eingeben, welcher auf der Schaltfläche lesbar sein soll (z.B. Start). Des weiteren ist die Option PrintObject auf False zu setzen. Schliessen Sie nun das Eigenschaftsfenster und doppelklicken sie auf den Button. Der Code Editor geht nun wieder auf.
Geben Sie nun zwischen Private Sub cbStart_Click()und End Sub follgenden Code ein:
Call mEinleser.Einleser
Nun läuft das Programm per Knopfdruck in Excel oder gehen sie einfach Zeile für Zeile vorwärts im Editor anhand der F8 Taste, wenn sie zuvor den Cursor in den Programme Code gesetzt haben.
Der befehl Debug.Print gibt die Ausgabe in ein Fenster aus. Wollen sie das Ganze in Zellen ausgeben, so benötigen sie den Befehl Tabelle1.cells(row,column).Value=Text1, analog
Tabelle1.cells(row,column).Value=Zahl1
Code erläuterung:
Tabelle gibt an in welches Datasheet geschrieben wird. Cells ist die Ansteuerung der Zellen, Value heisst Wert. Also der Wert des Parameters Text1 wird an eine Zelle in der Tabelle1 weiter gegeben.
Der Text kann auch aus der Tabelle eingelesen werden, wenn der code wie folgt lautet: Text1=Tabelle1.cells(row,column).Value In diesem Falle wird der Zellen wert dem Parameter Text1 Übergeben.
Soll dieser Parameter über mehrere einzelprogramme verfügbar bleiben, so muss die Parameterdeklaration welche hier Dim Text1 as String wie im 2. Fall auf Public Text1 as String umgeschrieben werden. Dim ist die Lokale-, Public die Globale Variable.
Nun ist noch das Problem das alles in eine Zelle geschrieben wird. Um das zu verhindern wird eine loop eigenschaft verwendet, welche die Parameter aufzählt. Z.B. Die Do loop until eigenschaft, oder die for eigenschaft.
Wichtig: bei VBA ist, dass immer wieder gespeichert wird, im falle einer Endlosschlaufe stürzt das Programm nämlich ab.
Es bestehen noch weitere Möglichkeiten Zeichen einzulesen, wies z.B. mit der ReadLine-Methode, oder der Read-Methode etc. Wichtig ist aber das Sequenzielle öffnen der Datei, welches mit Open „File“ und Close „File“ gewährleistet wird.

SRA

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

neben dem Einlesen durch ein Makro gibt es auch den Weg, Dateien zu importieren. In meinem alten Excel hatte ich so eine Funktion, wo man Daten aus Textfiles mittels Assistenten ohne Handarbeit in xls umwandeln konnte. Vielleicht hat Deine Version von Excel ja das noch, ich habe mittlerweile XP und da find ich es grad nicht.

Übrigens : mit 400 Spalten wirst Du Deine Probleme haben, denn Excel bietet nur 256 Spalten an.

Gruss Hans-Jürgen

Hi SRA,

danke für den Ansatz mit VBA,

jetzt muss ich mich halt in der
Richtung mal schlau machen.

Grüße in die schöne Schweiz,

Wolpi