Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Text aus Textbox ohne Anführungszeichen übergeben

Forumthread: Text aus Textbox ohne Anführungszeichen übergeben

Text aus Textbox ohne Anführungszeichen übergeben
20.07.2004 18:01:57
Chris37170
Hallo Miteinander,
ich möchte den Text aus einem Textfeld eines Formulars ohne Anführungszeichen zurückgeben.
Hintergrund ist, dass ich in einem Formular zwei Textfelder habe. In dem ersten Testfeld wird ein Eintrag aus dem Excel - Sheet gelesen z.B. "Umsatzangabe" gelesen. Dies möchte ich durch einen zweiten Eintrag, der dann als Namensbezug dienen soll, ersetzen. Der Replace Befehl übernimmt aber den Eintrag aus dem Ersetzungsfeld mit Anführungszeichen.
Beispielcode:
AlterText = txtAktDB.Text ' Hier sind Anführungszeichen richtig.
NeuerText = txtNeuDB.Text ' Hier sind Anführungszeichen nicht gewünscht
Cells.Replace What:=AlterText, Replacement:=NeuerText, LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False
Gibt es hierfür eine Lösung?
mfg
Chris
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text aus Textbox ohne Anführungszeichen überge
ChrisL
Hi Chris
Darf ich den VBA Profi mal blöd fragen, ob nicht allenfalls von einem ganz normalen String die Rede ist?
Also quasi...
DeinString = "Umsatzangabe"
...oder tatsächlich...
DeinString = """Umsatzangabe"""
Gruss
Chris
AW: Text aus Textbox ohne Anführungszeichen überge
20.07.2004 19:03:40
chris37170
Hi Chris,
du hast natürlich recht. Im ersten Textfeld steht dann natürlich """Umsatzangabe""", wobei aus der Datenbank Umsatzangabe gelesen wird. Im zweiten Textfeld kann nun eine Eingabe vorgenommen werden, die als Variable dient.
Würde im Original so aussehen, wie es der Makrorekorder aufgezeichnet hat.
Cells.Replace What:="""Umsatzangabe""", Replacement:="DBName", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False
wobei DBName die Variable (Namensfeld) wäre, die in allen Formeln ersetzt werden soll.
Wird dies über den Suchen / Ersetzen dialog durchgeführt klappt das einwandfrei. Wird dies per Makro durchgeführt, erhalte ich bei DBName aber als Ergebnis anstatt DBName nun in der Formel "DBName". Der Bezug per Name wäre somit nicht mehr vorhanden.
Ich will das über ein eigenes Formular lösen, weil in dem ersten Feld ein Wert automatisch aus dem Excel Sheet gelesen bzw. aus einer Formel übergeben wird. Dieser Wert darf niemals verändert werden. Der zweite Wert ist wahlfrei und wird vom Benutzer eingegeben.
Ich hoffe, dass ich mich nun etwas klarer ausgedrückt habe.
mfg
Chris
Anzeige
AW: Text aus Textbox ohne Anführungszeichen überge
20.07.2004 22:09:49
chris37170
Hallo Chris,
dein Kommentar zu meiner Nachricht hat mir den entscheidenden Hinweis gegegeben. Jetzt funktioniert es. Es sind halt nur sehr viele Anführungszeichen nötig:

Private Sub CommandButton1_Click()
Dim Meldung$, Antwort$
Meldung = "Wollen Sie wirklich die Datenbankbezeichnung ändern?" & vbCrLf
Meldung = Meldung + "Dieser Schritt ist nicht umkehrbar!"
Antwort = MsgBox(Meldung, vbYesNo + vbQuestion + vbDefaultButton2, "Datenbankbezeichnung ändern")
If Antwort = vbYes Then
Cells.Replace What:="""" & txtAktDB.Text & """", Replacement:=txtNeuDB.Text, LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False
usfDBAend.Hide
End If
End Sub

mfg
Chris
Anzeige
Danke für die Rückmeldung ;-) o.T.
ChrisL
Die Axt im Haus erspart den Henker oder wie war das doch gleich :-)
Gruss
Chris
;
Anzeige
Anzeige

Infobox / Tutorial

Text aus Textbox ohne Anführungszeichen übergeben


Schritt-für-Schritt-Anleitung

Um den Text aus einem Textfeld eines Excel-Formulars ohne Anführungszeichen zurückzugeben, kannst du die folgende Vorgehensweise nutzen. Diese Anleitung setzt voraus, dass du mit VBA (Visual Basic for Applications) arbeitest.

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Formular hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle Einfügen > UserForm.

  3. Füge zwei Textfelder und einen Button hinzu: Platziere zwei Textboxen (txtAktDB und txtNeuDB) sowie einen CommandButton (CommandButton1) auf dem Formular.

  4. Füge den folgenden Code in das Click-Ereignis des Buttons ein:

    Private Sub CommandButton1_Click()
       Dim Meldung As String, Antwort As Integer
       Meldung = "Wollen Sie wirklich die Datenbankbezeichnung ändern?" & vbCrLf
       Meldung = Meldung & "Dieser Schritt ist nicht umkehrbar!"
       Antwort = MsgBox(Meldung, vbYesNo + vbQuestion + vbDefaultButton2, "Datenbankbezeichnung ändern")
       If Antwort = vbYes Then
           Cells.Replace What:="""" & txtAktDB.Text & """", Replacement:=txtNeuDB.Text, LookAt:=xlPart, _
                         SearchOrder:=xlByRows, MatchCase:=False
           usfDBAend.Hide
       End If
    End Sub
  5. Teste das Formular: Starte das Formular und füge Werte in die Textfelder ein, um den Ersetzungsprozess zu überprüfen.


Häufige Fehler und Lösungen

  • Problem: Anführungszeichen werden nicht entfernt.

    • Lösung: Stelle sicher, dass du die Anführungszeichen korrekt im Replace-Befehl angibst. Nutze """" um ein Anführungszeichen in VBA darzustellen.
  • Problem: Der Ersetzungsprozess funktioniert nicht.

    • Lösung: Überprüfe, ob die Texte in den Textfeldern korrekt eingegeben sind. Achte darauf, dass die txtAktDB-Textbox den Text mit Anführungszeichen enthält.

Alternative Methoden

Falls die oben beschriebene Methode nicht funktioniert oder du eine Alternative suchst, kannst du auch die vba replace anführungszeichen-Funktion verwenden, um Anführungszeichen von einem String zu entfernen:

Dim NeuerText As String
NeuerText = Replace(txtNeuDB.Text, """", "")

Diese Methode entfernt alle Anführungszeichen aus dem Text, bevor du den Ersetzungsprozess startest.


Praktische Beispiele

Hier sind einige Beispiele, um das Verständnis zu vertiefen:

  1. Ein Beispiel für die Verwendung von Ersetzen:

    • Alter Text: "Umsatzangabe"
    • Neuer Text: DBName
    • VBA Code:
      Cells.Replace What:="""" & "Umsatzangabe" & """", Replacement:="DBName", LookAt:=xlPart
  2. Ein Beispiel für das Entfernen von Anführungszeichen:

    • Ursprünglicher Text: """Umsatzangabe"""
    • Nach dem Entfernen: Umsatzangabe

Tipps für Profis

  • Nutze die Trim-Funktion, um sicherzustellen, dass keine unerwünschten Leerzeichen im Text zu finden sind.
  • Teste immer deine VBA-Codes schrittweise, um sicherzustellen, dass jeder Teil der Logik wie gewünscht funktioniert.
  • Halte deine VBA-Makros gut dokumentiert, damit du später leichter auf Änderungen oder Fehler reagieren kannst.

FAQ: Häufige Fragen

1. Wie entferne ich Anführungszeichen in einem String mit VBA? Um Anführungszeichen aus einem String zu entfernen, kannst du die Replace-Funktion verwenden:

Dim NeuerText As String
NeuerText = Replace(Me.txtNeuDB.Text, """", "")

2. Warum funktioniert der Replace-Befehl nicht? Stelle sicher, dass der Text, den du ersetzen möchtest, exakt mit dem in der Zelle übereinstimmt, einschließlich der Anführungszeichen. Überprüfe auch, ob die Groß- und Kleinschreibung beachtet wird, falls MatchCase auf True gesetzt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige