Mit Excel in Textdatei Zeichen einfügen
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 schreiben
Antwort 1 von coros vom 26.10.2019, 12:15 Options
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 vom 26.10.2019, 12:33 Options
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 vom 26.10.2019, 12:37 Options
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 vom 29.10.2019, 15:49 Options
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 vom 29.10.2019, 16:22 Options
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 vom 29.10.2019, 16:24 OptionsLösung
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
[b]outputLine = outputLine & "'" & Cells(i, j) & "',"[/b]
das Komma zwischen den Anführungszeichen löschen. Die Zeile würde dann so aussehen:
[b]outputLine = outputLine & "'" & Cells(i, j) & "'"[/b]
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 vom 30.10.2019, 12:15 Options
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