Microsoft Excel

Herbers Excel/VBA-Archiv

Backspace einfügen

Betrifft: Backspace einfügen von: thomas
Geschrieben am: 03.09.2004 10:06:42

Hallo,

per Makro möchte ich die Zellen B2&C2 (B3&C3, usw) zusammenschreiben und dann in eine .txt speichern lassen.

Bsp.:
B2 > ab
c2 > cd

In der erstellten Datei soll nun in Zeile 1 abcd stehen.

Soweit funktionniert das auch schon, nur macht Excel mir dann unter die letzte Zeile noch eine Leerzeile (bzw. der Cursor steht am Anfang der 2ten Zeile obwohl dort nichts mehr steht).
siehr ungefähr so aus:

abcd
|

Ist es möglich das man dort soetwas wie ein "Backspace" einfügen kann, sodass nach dem "d" aus dem Beispiel kein "Enter" mehr folgt.
sollte so aussehen:

abcd|



Hier mein bisheriger Quellstext:

Sub updppdat()
i = 2: Data = ""
Open "C:\Test.txt" For Output As #1
Do Until Cells(i, 1) = ""
    Data = Mid$(Trim(Cells(i, 2)), 3, 6) & Trim(Cells(i, 3))
    i = i + 1
    Print #1, Data
    Data = ""
Loop
Reset
End Sub


Vielen Dank schonmal im vorraus.

MfG,
Thomas
  


Betrifft: AW: Backspace einfügen von: Ramses
Geschrieben am: 03.09.2004 10:21:35

Hallo

ungetestet, aber probier mal anstelle von "Print" die Funktion "Write"

Gruss Rainer


  


Betrifft: AW: Backspace einfügen von: thomas
Geschrieben am: 03.09.2004 10:25:07

Hallo,

habs getestet und Ergebnis sieht dann so aus:

"abcd"
|

bei Print fallen die Gänsefüßchen weg.
Aber trotzdem thx für den Tipp :)

MfG,
Thomas


  


Betrifft: AW: Backspace einfügen von: Luschi
Geschrieben am: 03.09.2004 10:40:31

Hallo Thomas,

dieses Verhalten von Excel ist so gewollt. Diese mit Print bzw. Write erzeugten
txt-Datei dienen dem Datenaustauch mit anderen externen Programmen. Damit der
korrekt ablaufen kann, muß jede Zeile mit einem Zeilenwechsel abgeschlossen sein,
also auch die letzte Zeile (auch wenn es die Einzige ist). Ansonsten kann es pas-
sieren, das die letzte Zeile verschluckt wird und dann fehlt.
Mit Input kann man diese txt-Datei auch wieder in eine Exceltabelle einlesen.
Da ist der letzte Zeilenwechsel dann verschwunden.
Warum stört Dich das eigenlich?

fragt sich Luschi
aus klein-Paris


  


Betrifft: AW: Backspace einfügen von: ypsilon
Geschrieben am: 03.09.2004 10:52:05

hi Thomas,
du musst hinter den letzten printbefehl ein semikolon setzen
Print #1, Data;
kommt noch aus alten dos-zeiten
cu Micha


  


Betrifft: Super von: Thomas
Geschrieben am: 03.09.2004 11:14:19

Hallo Micha,

danke für den guten Tipp, nu klappt es :)

mein Quelltext sieht nun so aus:

Sub updppdat()
i = 2: Data = ""
Open "C:\Test.txt" For Output As #1
Do Until Cells(i, 1) = ""
    Data = Mid$(Trim(Cells(i, 2)), 3, 6) & Trim(Cells(i, 3))
    i = i + 1
    If Cells(i, 1) = "" Then Print #1, Data; Else Print #1, Data
    Data = ""
Loop
Reset
End Sub


Bei mehreren Zeilen soll er nämlich nicht:

abcdefgh|

ausgeben, sondern:

abcd
efgh|

Aber das funktioniert nun :)
Danke nochmal für die Hilfe.

MfG,
Thomas


  


Betrifft: AW: Backspace einfügen von: thomas
Geschrieben am: 03.09.2004 11:05:41

Hallo,

mich stört es, weil ich es mit einem anderen Programm weiterverarbeiten möchte.
Bei diesem wird diese letzte "Leerzeile" als Alles gedeutet.. so wird nicht nur abcd verarbeitet sonder alles was in der datenbank steht^^

MfG,
Thomas