Excel97 - Tabelle speichern in TXT-Datei

Hallo
Ich erfasse Daten in einer Excel Tabelle und nach Abschluß speichere ich
diese Tabelle in einer TXT-Datei. Ich benötige diese Txt-Datei zur weiteren Verarbeitung in einem anderen Programm. Jetzt benötige ich die einzelnen Daten an ganz bestimmten Stellen in dieser TXT-Datei z.B.
15.11.03 aus Spalte 1 an 520. Stelle
Nr. 3000 " " 2 " 630. " .
Ich habe schon ausprobiert, dass ich die Zellinhalte der Tabelle 1 an die Position 520 oder 630 der Tabelle 2 kopiere, um diese dann in TXT zu speichern. Das klappt auch manchmal,
aber nicht immer. Viell. hat ja jemand eine Idee, die mich weiter bringt. Schön wäre es ja, wenn man die Stellen einer Zelle in Spalte 1 auf 8, in Spalte 2 auf 6 und Spalte3 auf 25 usw. festlegen könnte.
Mit freundlichen Grüßen

Klaus

hallo.

da wirst du wohl um ein kleines vba-skript nicht rum kommen :smile:

gruß

michael

Hallo,
und wie könnte so ein skript aussehen und ist dann sicher, dass die
jeweiligen richtigen Positionen in der Txt-Datei belegt sein??
Gruß
Klaus

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

Hallo,
und wie könnte so ein skript aussehen

zum beispiel so:
extras - makro - makros
makroname eingeben
auf „erstellen“ klicken

Sub test()
Open „test.txt“ For Output As #1 'zieldatei öffnen
zeilenzahl = 512 'hier zeilenzahl der tabelle angeben
For x = 1 To zeilenzahl
'in dieser schleife den aufbau eine zeile festlegen
'trennzeichen ist hier das semikolon
'wert aus spalte 2 in 1. spalte der textdatei bringen
zeile = Cells(x, 2).Value & „;“

'gefolgt von 300 leeren spalten
For spalte = 1 To 300
zeile = zeile & „;“
Next

'wert aus spalte 3 der quelldatei in 302. spalte der zieldatei
'wert aus spalte 1 der quelldatei in 303. spalte der zieldatei
zeile = zeile & Cells(x, 3).Value & „;“ & Cells(x, 1).Value

'zeile in txt-datei schreiben
Print #1, zeile

Next 'nächste zeile abarbeiten
Close #1 'datei schließen
End Sub

und ist dann sicher, dass die
jeweiligen richtigen Positionen in der Txt-Datei belegt
sein??

dafür mußt du selbst sorgen. wie deine datei am ende aussehen soll, weißt du ja. und für jede leere spalte mußt du eben ein trennzeichen einfügen.

als trennzeichen kannst du natürlich auch jedes andere ascii-zeichen benutzen.

gruß

michael

Script
Hallo Klaus

Unten stehendes Script bzw. Makro gibt jede Spalte in einer festgelegten Breite in die Text-Datei aus.
Du musst nur folgende Werte nach deinen Bedürfnissen anpassen:

  1. die Anzahl der Zeilen (Konstante „Zeilenzahl“)

  2. die Anzahl der Spalten (Konstante „Spaltenzahl“)

  3. für jede Spalte die gewünschte Breite (Array „Spalten“)

    Sub xls2txt()
    Dim x As Long, i As Integer
    Dim Zeile As String
    Dim Spalten
    Const Zeilenzahl = 512 ’ hier Zeilenanzahl der Tabelle angeben
    Const Spaltenzahl = 3
    ’ gewünschte Länge der einzelnen Spalten (Der 1. Wert 0 wird ignoriert, muss aber aus technischen Gründen sein)
    Spalten = Array(0, 8, 6, 25)

    Open „test.txt“ For Output As #1 ’ Zieldatei öffnen

    For x = 1 To Zeilenzahl ’ alle angegebene Zeilen abarbeiten
    Zeile = „“
    For i = 1 To Spaltenzahl ’ alle angegebene Spalten abarbeiten
    If Len(Cells(x, i))
    MfG
    Roland

Ein frohes Hallo des beiden Helfern,
Ich werde es sofort ausprobieren. Ich hoffe, dass ich es hin bekomme.
Ich bedanke mich recht herzlich.
Gruß Klaus

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

Ich bedanke mich recht herzlich.
Gruß Klaus

jo. wenn’s klappt, kannst ja mal bescheid mailen. wenn nicht, natürlich auch :smile:

gruß

michael