Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelleninhalt mit Anführungszeichen vorne und hinte

Forumthread: Zelleninhalt mit Anführungszeichen vorne und hinte

Zelleninhalt mit Anführungszeichen vorne und hinte
15.12.2008 00:31:27
Braleta
Hallo liebe Experten,
ich verzweifle an einer Arbeit, ich weiß genau, dass ich einen Denkfehler mache, aber ich finde mit allem Probieren nicht den richtigen Dreh!
Ich habe eine Excel-Datei, in der in jeder Zeile eine Anzahl von Zellen mit irgendwelchen Inhalten steht, die ich in einer bestimmten Auswahl und zusätzlich ";"-getrennt in eine TXT-Datei überführen muss. Die Aufgabe ist vergleichbar mit dem Erstellen einer CSV-Datei, alleridngs mittels
       &nbsp Open FileName For Append As #1
       &nbsp ...
       &nbsp Write #1, Zelleninhalte
       &nbsp ...
       &nbsp Write #1, Zelleninhalte
       &nbsp ...
       &nbsp Write #1, Zelleninhalte

So weit so gut.
Anhand einer Vorgabe aber muss ich einige (und nicht alle) Zellinhalte mit führenden und endenden Anführungszeichen versehen, unabhängig davon, ob es sich als Zellwert um Text oder um eine Zahl handelt.
Und da beginnt mein Problem. Ich schaffe es einfach nicht, bestimmte Zellinhalte mit einem führenden und einem endenden Anführungszeichen in die Datei zu schreiben.
Im Folgenden habe ich eine Excel-Zeile und die geforderte Text-Zeile dargestellt:
        &nbsp    &nbsp Zelle1   &nbsp Zelle2    &nbsp Zelle3    &nbsp Zelle4    &nbsp Zelle5    &nbsp Zelle6
Excel:    &nbsp 12345  &nbsp Abcde    &nbsp 1    &nbsp    &nbsp &nbsp 1    &nbsp    &nbsp  &nbsp 19       &nbsp  &nbsp 1
Text:  &nbsp  &nbsp "12345";"Abcde";"1";        &nbsp 1;      &nbsp     &nbsp "19";    &nbsp "1"
Wer kann mir mit diesem Problem helfen? Wie definiere ich in meinem Macro einen Zellinhalt, dass er mit einem führenden und mit einem endenden Anführungszeichen in eine Textdatei geschrieben wird, jeweils unter Berücksichtigung der notwendigen Semikola?
...bruno / braleta
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt mit Anführungszeichen vorne und hinte
15.12.2008 00:44:58
Lenhard
Moin Braleta!
Ich hatte mal ein ähnliches Problem. Guckst Du:
https://www.herber.de/forum/archiv/852to856/t854638.htm
Das, was bei mir in eine Textdatei sollte, habe ich einfach über Formeln in einem weiteren Tabellenblatt "zusammengebaut" (auch mit Zwischenzeichen). Dieses weitere Tabellenblatt wird ausgeblendet und es greift das damals von Erich vorgestellte VBA-Skribt.
Ich hoffe es hilft Dir weiter!
Gruß
Lenni
Anzeige
AW: Zelleninhalt mit Anführungszeichen vorne und hinte
15.12.2008 08:04:20
Braleta
Guten Morgen Lenni,
danke für den Tipp, ich werde ihn dann analysieren und ausprobieren!
Ich melde mich.
...bruno
AW: Zelleninhalt mit Anführungszeichen vorne und hinte
16.12.2008 18:09:42
braleta
Lenni,
danke für den Tipp, die Informationen waren hilfreich und ic hhabe mein Problem jetzt tatsächlich gelöst.
Elegant (denke ich) und den Vorgaben entsprechend.
...bruno
Anzeige
AW: Zelleninhalt mit Anführungszeichen vorne und hinte
15.12.2008 08:50:00
ransi
HAllo Bralate
Mit diesem ganzen #1 und "for Append" und diesem ganzen Zeugs stehe ich irgendwie auf Kriegsfuß.
Das begereife ich wahrscheinlich nie...
Teste mal dies:
Option Explicit

Public Sub test()
Dim FSO
Dim CSV_Datei
Dim A As Boolean
Dim L As Long
Dim I As Integer
Dim Speicherdaten As Variant
Dim Arr As Variant
Speicherdaten = Sheets("Tabelle1").Range("A1").CurrentRegion 'Beispieldaten
A = Dir("C:/Meine_datei.csv") = ""
Set FSO = CreateObject("Scripting.FileSystemObject")
Set CSV_Datei = FSO.opentextfile("C:/Meine_datei.csv", 8, A)
'Umschaufeln
For L = 2 To UBound(Speicherdaten, 1) 'Zeilen
    Redim Arr(1 To UBound(Speicherdaten, 2))
    For I = 1 To UBound(Speicherdaten, 2)
        If I <> 4 Then
            Arr(I) = Chr(34) & Speicherdaten(L, I) & Chr(34)
            Else:
            Arr(I) = Speicherdaten(L, I)
        End If
    Next
    CSV_Datei.write Join(Arr, ";") & vbCrLf 'In Datei schreiben
Next
CSV_Datei.Close
End Sub

ransi
Anzeige
AW: Zelleninhalt mit Anführungszeichen vorne und hinte
16.12.2008 18:22:53
braleta
Ransi,
danke für den Code, er hat mir extrem geholfen.
Jetzt verstehe ich auch die Aussage mit "#1 und "for Append" und "Kriegsfuß", die txt.write-Methode gefällt mir sehr gut.
Sie hat den extremen Vorteil, dass sie Feldinhalte nicht grundsätzlich mit Anführungszeichen versieht.
Die "andere" hat natürlich "ANDERE" Vorteile..... :-)
Danke ...bruno
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelleninhalt mit Anführungszeichen in Excel versehen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Datei, die die Zellen enthält, deren Inhalte Du mit Anführungszeichen versehen möchtest.

  2. Erstelle ein neues Modul in der VBA-Entwicklungsumgebung (drücke ALT + F11).

  3. Füge den folgenden Code ein:

    Option Explicit
    
    Public Sub ZellenInAnfuehrungszeichenSetzen()
       Dim FSO As Object
       Dim CSV_Datei As Object
       Dim Speicherdaten As Variant
       Dim Arr() As Variant
       Dim L As Long
       Dim I As Integer
    
       ' Daten aus dem Arbeitsblatt abrufen
       Speicherdaten = Sheets("Tabelle1").Range("A1").CurrentRegion
       Set FSO = CreateObject("Scripting.FileSystemObject")
       Set CSV_Datei = FSO.opentextfile("C:/Meine_datei.csv", 8, True)
    
       ' Durch die Zeilen iterieren
       For L = 2 To UBound(Speicherdaten, 1)
           ReDim Arr(1 To UBound(Speicherdaten, 2))
           For I = 1 To UBound(Speicherdaten, 2)
               If I <> 4 Then
                   Arr(I) = Chr(34) & Speicherdaten(L, I) & Chr(34) ' Anführungszeichen hinzufügen
               Else
                   Arr(I) = Speicherdaten(L, I)
               End If
           Next I
           CSV_Datei.Write Join(Arr, ";") & vbCrLf ' In die Datei schreiben
       Next L
       CSV_Datei.Close
    End Sub
  4. Passe den Code an: Ersetze "C:/Meine_datei.csv" durch den Pfad, wo Du die CSV-Datei speichern möchtest.

  5. Führe das Skript aus, um die Zelleninhalte mit Anführungszeichen zu versehen.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"
    Lösung: Stelle sicher, dass der Pfad zur Datei korrekt ist und dass Du die nötigen Zugriffsrechte hast.

  • Fehler: "Typ nicht definiert"
    Lösung: Überprüfe, ob Du die richtige Excel-Version verwendest und ob die Variablen korrekt deklariert sind.

  • Anführungszeichen werden nicht hinzugefügt
    Lösung: Stelle sicher, dass die If-Bedingung im Code korrekt ist. Anführungszeichen werden nur für bestimmte Spalten hinzugefügt.


Alternative Methoden

Eine alternative Lösung ist die Verwendung von Excel-Formeln, um die Anführungszeichen manuell hinzuzufügen:

  1. Erstelle eine Hilfsspalte neben den Zellen, die Du bearbeiten möchtest.
  2. Verwende die Formel:

    =""" & A1 & """ ; """ & B1 & """ ; """ & C1 & """ 

    Diese Formel fügt Anführungszeichen um die Zellinhalte in den Zellen A1, B1 und C1 hinzu.


Praktische Beispiele

Wenn Du beispielsweise die Werte in den Zellen A1, B1 und C1 hast:

A1 B1 C1
12345 Abcde 1

Wird die Ausgabe in der Hilfsspalte so aussehen:

"12345";"Abcde";"1"

Dieses Format ist hilfreich, wenn Du die Daten später in eine CSV-Datei exportieren möchtest.


Tipps für Profis

  • Verwendung von VBA: Wenn Du regelmäßig Daten mit Anführungszeichen exportierst, solltest Du das VBA-Skript als Makro speichern, um es schneller ausführen zu können.
  • CSV-Dateien: Achte darauf, dass die Trennzeichen in Deiner CSV-Datei den Anforderungen Deines Zielsystems entsprechen. Oftmals sind Anführungszeichen notwendig, um Textfelder korrekt zu kennzeichnen.
  • Debugging: Nutze Debug.Print, um Zwischenergebnisse im VBA-Code auszugeben, falls Du auf Probleme stößt.

FAQ: Häufige Fragen

1. Wie füge ich Anführungszeichen in eine Excel-Formel ein?
Um Anführungszeichen in einer Excel-Formel einzufügen, kannst Du doppelte Anführungszeichen verwenden, z.B. =""" & A1 & """".

2. Kann ich Anführungszeichen in eine CSV-Datei exportieren?
Ja, Du kannst Anführungszeichen um bestimmte Zellinhalte setzen, während Du sie in eine CSV-Datei exportierst, indem Du VBA oder die oben genannten Formeln verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige