Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
464to468
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
464to468
464to468
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anfürungszeichen

Anfürungszeichen
11.08.2004 13:04:00
Tobias
Kann mir jemand sagen wie ich die anfürungszeichen, die das Excel macht wenn man eine Tabelle in ein textfile speichert und es in einer zelle ein "," hat, wegbringt mit edem makro ohne das "," zu löschen.
Das ist sehr dringend und wenn es nicht geht könnt ihr dies auch sagen.
Ich danke euch schon im vorraus

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anfürungszeichen
11.08.2004 13:58:32
ChrisL
Hi Tobias
Versuch es mal über die Ländereinstellungen. Auf meinem Compi (Einstellung Schweiz) werden keine Anführungszeichen eingefügt (Speichern unter, Text Tabs getrennt).
Alternativ habe ich dir mal ein Makro angefügt, welches ich als Add-In verwende, um ein CSV File in spezieller Formatierung zu erstellen. Statt CSV könnte es genau so gut ein TXT File sein. Allerdings musst du das Makro noch leicht modifizieren.
Gruss
Chris


Sub CSVExport()
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
On Error GoTo errorhandler
With ActiveSheet
sFile = Application.GetSaveAsFilename(InitialFilename:="Location Management " & .Range("A2") & ".csv", _
FileFilter:="CSV-Datei (*.csv), *.csv")
If sFile = False Then Exit Sub
If Dir(sFile) <> "" Then
msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die bestehende Datei ersetzen?", _
vbQuestion + vbYesNo, "Warnung")
If msgAntwort = vbNo Then Exit Sub
End If
Set Daten = .UsedRange
Close
Open sFile For Output As #1
For Each Zeile In Daten.Rows
If Zeile.Row > .Range("A65536").End(xlUp).Row Then
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"
Exit Sub
End If
For Each Zelle In Zeile.Cells
If (Zelle.Column = 4 Or Zelle.Column = 5) And Zelle <> "" Then
strTemp = strTemp & CStr(Format(Zelle, "DD") & "/" & Format(Zelle, "MM") _
& "/" & Format(Zelle, "YY")) & ";"
Else
If Zelle.Column >= 22 And Zelle.Column <= 38 And Zelle <> "" Then
strTemp = strTemp & CStr(Format(Zelle, "0")) & ";"
Else
strTemp = strTemp & CStr(Zelle.Text) & ";"
End If
End If
Next Zelle
Print #1, strTemp
strTemp = ""
Next Zeile
Close #1
End With
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"
Exit Sub
errorhandler:
MsgBox "Es ist ein Fehler aufgetreten. Die Datei konnte nicht vollständig exportiert werden.", vbCritical, "Fehlermeldung"
End Sub

Anzeige
AW: Anfürungszeichen
11.08.2004 14:40:21
tobias
wenn man es manuell speichert kommen schon keine anfürungszeichen aber wenn man es mit dem makro macht dann gibt es diese schon!!
Bitte!!
11.08.2004 14:59:22
ChrisL
Wer nicht brav Hallo sagt und auch kein Danke, der darf das Makro selber anpassen. Die Lösung steht im Prinzip ja schon da. Viel Spass!!
AW: Bitte!!
11.08.2004 16:03:14
tobias
erstmals danke für den Makro
kanst du ihn mir bitte anpassen denn ich habe es jetzt bereits eine stunde versucht aber es steht nichts im textfile das er generiert
Bitte

Ich danke dier schon im vorraus
AW: Bitte!!
11.08.2004 16:23:57
ChrisL
Hi
Will mal nicht so sein, bin auch nicht nachtragen ;-)

Sub TXTExport()
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
On Error GoTo errorhandler
With ActiveSheet
sFile = Application.GetSaveAsFilename(InitialFilename:="DeineVorgabe" & ".txt", _
FileFilter:="TXT-Datei (*.txt), *.txt")
If sFile = False Then Exit Sub
If Dir(sFile) <> "" Then
msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die bestehende Datei ersetzen?", _
vbQuestion + vbYesNo, "Warnung")
If msgAntwort = vbNo Then Exit Sub
End If
Set Daten = .UsedRange
Close
Open sFile For Output As #1
For Each Zeile In Daten.Rows
For Each Zelle In Zeile.Cells
If Zelle.Column = 1 Then
strTemp = Zelle
Else
strTemp = strTemp & vbTab & Zelle
End If
Next Zelle
Print #1, strTemp
strTemp = ""
Next Zeile
Close #1
End With
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"
Exit Sub
errorhandler:
MsgBox "Es ist ein Fehler aufgetreten. Die Datei konnte nicht vollständig exportiert werden.", vbCritical, "Fehlermeldung"
End Sub

Gruss
Chris
Anzeige
AW: Bitte!!
11.08.2004 17:16:40
tobias
erstmal danke für die anpassungen
ich habe ein problehm mit dem mekr ich habe ihn jetzt bei mir eingebunden und habe festgestellt dass es einfach Tab stops vor den eintrag macht ( 7 Stück) die kann ich aber nicht gebrauchen.
kann mir da jemand weiterhelfen
AW: Bitte!!
11.08.2004 18:06:38
ChrisL
Hi Tobias
Kannst du mal ein Beispiel hochladen. Selber kann ich den Fehler nicht nachvollziehen.
Gruss
Chris
Dateien
12.08.2004 08:25:46
tobias
Hallo ich habe jetzt einmal die textdatei unter https://www.herber.de/bbs/user/9533.txt
hochgeladen und die excel datei unter

Die Datei https://www.herber.de/bbs/user/9534.xls wurde aus Datenschutzgründen gelöscht

ich hoffe dass sie dir weiterhelfen
Ich habe nur noch einen Tab stop ( die andern habe ich gelöst)
Ich danke dir schon im vorraus
Anzeige
AW: Dateien
12.08.2004 08:49:35
tobias
Ich habe den Fehler gefunden und selber behoben aber ich danke dir trozdem für deine mühen
AW: Dateien
12.08.2004 10:25:19
ChrisL
Hi Tobias
Würde dir mal folgendes Kapitel empfehlen ;-)
https://www.herber.de/xlfaq/xlbasics/main_sel.htm
Und hier der überarbeitete Code...

Sub Text_Datei_erstellen()
Dim Zahl As Integer, Number As Integer
Dim Counter As Byte
Dim Unterschied As Double
Dim WS1 As Worksheet, WS2 As Worksheet, WS3 As Worksheet
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
On Error GoTo ErrorHandler
' Plausibilitätsprüfung
Set WS1 = Worksheets("Tabelle1")
If IsEmpty(WS1.Range("J4")) Then
MsgBox ("Das Feld J4 darf nicht Leer sein")
Exit Sub
End If
If IsEmpty(WS1.Range("J6")) Then
MsgBox ("Das Feld J6 darf nicht Leer sein")
Exit Sub
End If
Application.ScreenUpdating = False
' Blätter löschen, sofern vorhanden
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("ASCI").Delete
Worksheets("Export").Delete
Application.DisplayAlerts = True
' Neue Blätter erstellen und benennen
On Error GoTo ErrorHandler
Set WS2 = Sheets.Add
Set WS3 = Sheets.Add
WS2.Name = "ASCI"
WS3.Name = "Export"
WS2.Range("A1") = Mid(WS1.Range("J4"), 5, 3)
WS2.Range("B1") = Mid(WS1.Range("J4"), 15, 2)
WS2.Range("C1") = Mid(WS1.Range("J6"), 2, 5)
WS2.Range("D1") = Mid(WS1.Range("J6"), 11, 5)
WS3.Range("H1").FormulaR1C1 = "=ASCI!RC[-7]&ASCI!RC[-6]&ASCI!RC[-5]&ASCI!RC[-4]&ASCI!RC[-3]&ASCI!RC[-2]&ASCI!RC[-1]"
Zahl = 11
Number = 2
Counter = 0
Unterschied = 9
Do While Counter < 15
If IsEmpty(WS1.Range("K" & Zahl)) Then
Counter = Counter + 1
Zahl = Zahl + 1
Unterschied = Unterschied + 1
Else
If IsNumeric(WS1.Range("B" & Zahl)) Then
WS2.Range("A" & Number).FormulaR1C1 = "=Tabelle1!R[+" & Unterschied & "]C[+14] & REPT("" "",2-LEN(Tabelle1!R[" & Unterschied & "]C[+14]))"
WS2.Range("B" & Number).FormulaR1C1 = "=Tabelle1!R[+" & Unterschied & "]C[+9] & REPT("" "",32-LEN(Tabelle1!R[+" & Unterschied & "]C[+9]))"
WS2.Range("C" & Number).FormulaR1C1 = "=Tabelle1!R[+" & Unterschied & "]C & REPT("" "",60-LEN(Tabelle1!R[+" & Unterschied & "]C))"
WS2.Range("D" & Number).FormulaR1C1 = "=Tabelle1!R[+" & Unterschied & "]C[+4] & REPT("" "",10-LEN(Tabelle1!R[+" & Unterschied & "]C[+4]))"
WS2.Range("E" & Number).FormulaR1C1 = "=Tabelle1!R[+" & Unterschied & "]C[+4] & REPT("" "",10-LEN(Tabelle1!R[+" & Unterschied & "]C[+4]))"
WS2.Range("F" & Number).FormulaR1C1 = "=Tabelle1!R[+" & Unterschied & "]C[+10] & REPT("" "",20-LEN(Tabelle1!R[+" & Unterschied & "]C[+10]))"
WS2.Range("G" & Number).FormulaR1C1 = "=Tabelle1!R[+" & Unterschied & "]C[+10] & REPT("" "",60-LEN(Tabelle1!R[+" & Unterschied & "]C[+10]))"
WS3.Range("H" & Number).FormulaR1C1 = "=ASCI!RC[-6]&ASCI!RC[-5]&ASCI!RC[-4]&ASCI!RC[-3]&ASCI!RC[-2]&ASCI!RC[-1]"
Counter = 0
Zahl = Zahl + 1
Number = Number + 1
Else
Unterschied = Unterschied + 1
Zahl = Zahl + 1
End If
End If
Loop
With WS3
sFile = Application.GetSaveAsFilename(InitialFilename:="" & WS3.Range("H1") & "_" & Date$ & ".txt", _
FileFilter:="TXT-Datei (*.txt), *.txt")
If sFile = False Then Exit Sub
If Dir(sFile) <> "" Then
msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die bestehende Datei ersetzen?", _
vbQuestion + vbYesNo, "Warnung")
If msgAntwort = vbNo Then Exit Sub
End If
.Columns("A:G").Delete Shift:=xlToLeft
Set Daten = .UsedRange
Close
Open sFile For Output As #1
For Each Zeile In Daten.Rows
For Each Zelle In Zeile.Cells
If Zelle.Column = 1 Then
strTemp = Zelle
Else
strTemp = strTemp & vbTab & Zelle
End If
Next Zelle
Print #1, strTemp
strTemp = ""
Next Zeile
Close #1
End With
Application.ScreenUpdating = True
MsgBox "Die Datei wurde erfolgreich exportiert.", vbInformation, "Export erfolgreich"
Exit Sub
ErrorHandler:
MsgBox "Es ist ein Fehler aufgetreten. Die Datei konnte nicht vollständig exportiert werden.", vbCritical, "Fehlermeldung"
End Sub


Gruss
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige