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 
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:
-
die Anzahl der Zeilen (Konstante „Zeilenzahl“)
-
die Anzahl der Spalten (Konstante „Spaltenzahl“)
-
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 
gruß
michael