Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Mit Excel in Textdatei Zeichen einfügen





Frage

Hallo liebes Forum, ich arbeite mit Excel2000 und habe folgende Aufgabe für Euch: Ich muss aus meiner Exceldatei Daten aus den Spalten A bis P in eine txt Datei exportieren. Habe das mit VB soweit unter kontrolle. Die Daten aus den Zellen sollen Zeilenweise in folgendem Format ausgegeben werden: Excel: Spalte A Spalte B Spalte C AuftragNr. Status Kunde Textdatei: 'AuftragsNr','Status','Kunde','' Mein Problem sind nun die beiden letzten Hochkommas. Wie kann ich die letzten beiden Hochkommas am Ende jeder Zeile ergänzen. Ich würde mich über einen kleinen Tipp freune. Schönes Wochenende Euch allen. Eleve

Antwort 1 von coros

Hallo Eleve,

wo ist der VBA-Code?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Eleve

Tut mir leid - vergessen:

Dim cc As Range
Set cc = Range("A1:P200")
Sheets("Tabelle1").Activate
cc.Select

Cells.Replace What:="ö", Replacement:="”", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True
Cells.Replace What:="ü", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True
Cells.Replace What:="ä", Replacement:="„", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True
Cells.Replace What:="ß", Replacement:="á", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True
Cells.Replace What:="Ü", Replacement:="š", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True
Cells.Replace What:="Ö", Replacement:="™", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True
Cells.Replace What:="Ä", Replacement:="Ž", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True


F = FreeFile(0)
fname = "D:\xxauftrag.dmp" 'InputBox("Dateiname und Pfad eingeben:", _
If fname <> False Then
Open fname For Output As #F

Set Rng = Range("A1:P200")
Rng.Select
Rng.Activate

Debug.Print Rng.Address

FCol = Rng.Columns(1).Column
LCol = Rng.Columns(16).Column
Frow = Rng.Rows(1).Row
Lrow = Rng.Rows(Rng.Rows.Count).Row

For i = Frow To Lrow
outputLine = ""
For j = FCol To LCol
If j <> LCol Then
outputLine = outputLine & "'" & Cells(i, j) & "',"
Else
outputLine = outputLine & Cells(i, j)
End If
Next j
Print #F, outputLine
Next i
Close #F
End If

End Sub


Danke für die schnelle Antwort.

Antwort 3 von coros

Hallo Eleve,

schnellste Lösung, erweitere den Bereich um eine Spalte, also bis Spalte Q . Formatiere in dem Tabellenblatt Spalte Q als Text und trage dort die Zeichen ein. Dann werden diese automatisch, wegen der Bereichserweiterung mit in Deine Array-Variable mit eingelesen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Eleve

Hallo Oliver,

leider hat die Sache einen Hacken. Ich muss die txt - Datei in ein anderes Programm einlesen und dieses Programm kann die txt -Datei nur lesen, wenn die Zeile mit einem ' endet. Bei meinem code endet die Zeile immer mit einem Komma.
Ich müsste also dem code eine Prüfung einbauen - wenn die letzte Spalte erreicht ist, dann beende diese in der txt - Datei mit einem '.

Vielleicht hast Du ja noch einen Tipp für mich.

Vielen Dank schon mal und viele Grüße

Eleve

Antwort 5 von Eleve

Hallo Oliver,

vielen Dank für Deine Hilfe.

Ich habe unter diesem Linke

http://www.office-loesung.de/ftopic14862_0_0_asc.php

meine Antwort gefunden.

Eleve

Antwort 6 von coros

Hallo Eleve,

jetzt habe ich verstanden, was DU mit einem Hochkomma meinst. Ich bin von einem anderen Zeichern ausgegangen. Damit als letztes Zeichen ein Hochkomma steht, muss Du in der Zeile

outputLine = outputLine & "'" & Cells(i, j) & "',"



das Komma zwischen den Anführungszeichen löschen. Die Zeile würde dann so aussehen:

outputLine = outputLine & "'" & Cells(i, j) & "'"


Allerdings werden dann die einzelnen Werte nicht in Hochkommatas gesetzt. Ist das dann richtig? Wenn nicht, also wenn jeder Wert in Hochkommatas gestezt sein muss, dann muss vorher beschriebene Zeile so bleiben und am Ende muss ebenfalls das Hochkommatazeichen als Abschluss gesetzt werden. Um das zu erhalten, musst Du an den Befehl

Print #F, outputLine



noch ein & "'" heranhängen. Das Ganze sieht dann so aus:

Print #F, outputLine & "'"


MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von Eleve

Hallo Oliver,

dein letzter Beitrag hat mir sehr geholfen den Print Befehl besser zu verstehen. Es ist immer wieder eine Freude von Dir geholfen zu bekommen.

Viele Grüße

Eleve

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: