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

Forumthread: Textbox per VBA löschen

Textbox per VBA löschen
15.01.2009 10:12:00
Jean
Hallo,
auf welche Weise löscht man per VBA alle Zeichenketten einer Textbox, die per Zeilenumbruch unter einander eingetragen wurden?
Gruß
Jean
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox per VBA löschen
15.01.2009 10:14:17
Oberschlumpf
Hi
Versuch es mit
NameDerTextBox.Text=""
So ist dann der gesamte Inhalt einer Textbox gelöscht.
Hilfts?
Ciao
Thorsten
AW: Textbox per VBA löschen
15.01.2009 10:44:05
Jean
Hallo Thorsten,
vielen Dank für Deine Antwort.
Mein Versuch Deinen Rat umzusetzen, ging schief.
Beide Zeilen nach Select führen nicht zum Erfolg
ActiveSheet.Shapes("Text Box 1").Select
'ActiveSheet.Shapes("Text Box 1").Text = ""
Shapes("Text Box 1").Text = ""
Meine Bitte: Wie lautet die Zeile richtig?
Gruß
Jean
Anzeige
AW: Textbox per VBA löschen
15.01.2009 10:57:23
Ramses
Hallo
Das geht so:
ActiveSheet.Shapes("Text Box 1").OLEFormat.Object.Characters.Text = ""
Gruss Rainer
AW: Textbox per VBA löschen
15.01.2009 11:12:00
Jean
Hallo Rainer,
vielen Dank für Deine Lösung. Eine Verständnisfrage dazu:
'Lösung 1
'ActiveSheet.Shapes("Text Box 1").Select
'Selection.Characters.Text = ""
'Lösung 2
'ActiveSheet.Shapes("Text Box 1").OLEFormat.Object.Characters.Text = ""
'Lösung 3
ActiveSheet.Shapes("Text Box 1").Characters.Text = ""
Lösung 1 und 2 funktionieren, Lösung 3 nicht.
Hast Du dafür eine Erklärung?
Gruß
Jean
Anzeige
AW: Textbox per VBA löschen
15.01.2009 11:17:00
Ramses
Hallo
"...Hast Du dafür eine Erklärung?..."
Klar :-)
Schau mal in den EXCEL Object Katalog :-)
"Selection" veranlasst EXCEL das Object zu identifizieren und dann entsprechend zu behandeln.
Meine Anweisung greift auf den Objectkatalog zu, indem du Objecte direkt ansprechen kannst OHNE diese zu selectieren
Gruss Rainer
Anzeige
AW: Textbox per VBA löschen
15.01.2009 12:18:28
Jean
Hallo Rainer,
jetzt ist die Sache verstanden.
Danke für Deine Hilfen.
Gruß
Jean
;
Anzeige
Anzeige

Infobox / Tutorial

Textbox in Excel per VBA löschen


Schritt-für-Schritt-Anleitung

Um eine Textbox in Excel per VBA zu löschen oder zu leeren, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und dann auf Modul.
  3. Gib den folgenden Code ein:

Sub TextboxLeeren()
    ActiveSheet.Shapes("Text Box 1").OLEFormat.Object.Characters.Text = ""
End Sub
  1. Führe das Makro aus:
    • Drücke F5 oder gehe zurück zu Excel und führe das Makro über Entwicklertools > Makros aus.

Dieser Code leert den Inhalt der Textbox mit dem Namen „Text Box 1“. Achte darauf, den Namen der Textbox anzupassen, wenn du eine andere verwendest.


Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht und es erscheint eine Fehlermeldung.

    • Lösung: Überprüfe, ob der Name der Textbox korrekt ist. Du kannst den Namen in den Eigenschaften der Textbox im VBA-Editor einsehen.
  • Problem: Das Textfeld wird nicht geleert.

    • Lösung: Stelle sicher, dass du den richtigen Code verwendest. Verwende ActiveSheet.Shapes("Text Box 1").OLEFormat.Object.Characters.Text = "", um den Inhalt der Textbox zu löschen.

Alternative Methoden

Es gibt mehrere Möglichkeiten, ein Textfeld in Excel zu leeren oder zu löschen:

  1. Direktes Leeren:

    ActiveSheet.Shapes("Text Box 1").Text = ""
  2. Auswahl verwenden:

    ActiveSheet.Shapes("Text Box 1").Select
    Selection.Characters.Text = ""
  3. Für UserForms:

    Me.TextBox1.Text = ""

Diese Methoden sind hilfreich, wenn du mit verschiedenen Arten von Textfeldern arbeitest.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Textfelder in Excel per VBA leeren kannst:

  1. Leeren aller Textfelder auf einem Arbeitsblatt:

    Sub AlleTextfelderLeeren()
       Dim shp As Shape
       For Each shp In ActiveSheet.Shapes
           If shp.Type = msoTextBox Then
               shp.OLEFormat.Object.Characters.Text = ""
           End If
       Next shp
    End Sub
  2. Leeren eines spezifischen Textfelds in einem UserForm:

    Private Sub btnLeeren_Click()
       Me.txtInput.Text = ""
    End Sub

Diese Beispiele zeigen, wie du alle Textfelder auf einem Arbeitsblatt oder spezifische Eingabefelder in UserForms leeren kannst.


Tipps für Profis

  • Namen von Textfeldern: Achte darauf, dass die Namen deiner Textfelder eindeutig sind, um Verwirrungen beim Löschen oder Leeren zu vermeiden.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsmechanismen in deinen VBA-Code, um mögliche Laufzeitfehler zu vermeiden.

  • Dokumentation: Halte deinen Code gut dokumentiert, um später nachvollziehen zu können, was jede Zeile bewirken soll.


FAQ: Häufige Fragen

1. Wie kann ich alle Textfelder auf einmal in Excel leeren?
Du kannst eine Schleife verwenden, um alle Textfelder auf dem aktiven Arbeitsblatt durchzugehen und deren Inhalt zu leeren.

2. Funktioniert der Code auch in älteren Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die die VBA-Programmierung unterstützen.

3. Was ist der Unterschied zwischen OLEFormat und Selection?
OLEFormat ermöglicht es dir, direkt auf das Objekt zuzugreifen, ohne es vorher auszuwählen, während Selection das aktuell ausgewählte Objekt verwendet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige