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

Forumthread: TextBox löschen

TextBox löschen
Peter
Hallo Excel-Experten,
ich habe ein UserForm geschickt bekommen, aus dem ich eine fehlerhaft definierte TextBox herauslöschen soll. Die TextBox hat als Left die Position -108, liegt also irgendwo im Nirwana.
Ich bekomme die TextBox über die Eigenschaft des UserForms nicht angezeigt um sie darüber zu korrigieren und zu löschen.
Dim objControl As Control
For Each objControl In UserForm36.Controls
If TypeOf objControl Is MSForms.TextBox Then
If objControl.Name = "TextBox3" Then
UserForm36.Controls.Remove objControl.Name
End If
End If
Next objControl
Sagt Laufzeitfehler 444, Steuerelemente konnten nicht gelöscht werden. Diese Methode kann in diesem Zusammenhang nicht verwendet werden.
Ich bin im Moment etwas ratlos, wie ich die Box löschen kann.
Wer kennt einen funktionierenden Weg?
Gruß Peter
Anzeige
warum denn mit VBA
16.08.2012 21:56:02
Matthias
Hallo Peter
Verstehe ich nicht ganz.
Userbild
Gruß Matthias
AW: warum denn mit VBA
16.08.2012 22:25:24
Peter
Hallo Matthias,
ich bekomme die TextBox leider nicht angezeigt.
Es könnte sein dass sie sich hinter einem Frame versteckt, sie wird mir jedenfalls nicht angezeigt.
Deshalb mein Versuch die Box über VBA zu löschen.
Gruß Peter
Anzeige
AW: TextBox löschen
16.08.2012 22:23:31
Josef

Hallo Peter,
du musst den Zugriff auf das VB-Projekt zulassen (Makros > Sicherheit)
Sub removeControl()
  Dim objCtrl As Object, objUF As Object, objProject As Object
  Dim strFormName As String, strControl As String
  
  strFormName = "Userform1"
  strControl = "Textbox2"
  
  Set objProject = ThisWorkbook.VBProject
  
  Set objUF = objProject.VBComponents(strFormName)
  
  For Each objCtrl In objUF.Designer.Controls
    If LCase(objCtrl.Name) = LCase(strControl) Then objUF.Designer.Controls.Remove objCtrl.Name
  Next
  
  Set objUF = Nothing
  Set objProject = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: TextBox löschen
16.08.2012 22:40:13
Peter
Hallo Sepp,
könnte es sein, dass Du übersehen hast, dass ich noch unter Excel 2003 schaffe?
Die Zeile For Each objCtrl In objUF.Designer.Controls wird mit Laufzeitfehler 91 Objektvariable oder With-Blockvariable nicht festgelegt moniert.
Die Makrosicherheit habe ich von mittel auf niedrig gesetzt.
Gruß Peter
Anzeige
AW: TextBox löschen
16.08.2012 22:51:01
Josef

Hallo Peter,
der Code läuft auch unter xl2003, du sollst nicht die Makrosicherheit verstellen sondern den Zugriff auf das VBA-Projekt erlauben!

« Gruß Sepp »

Anzeige
AW: TextBox löschen
17.08.2012 14:41:39
Peter
Hallo Sepp,
bei Extras Makro Sicherheit Vertrauenswürdiger Herausgeber sind beide Häkchen gesetzt und trotdem wird die Zeile For Each objCtrl In objUF.Designer.Controls gelb markiert und der Laufzeitfehler 91 reklamiert.
Gruß Peter
AW: TextBox löschen
17.08.2012 15:03:01
Peter
Hallo Sepp,
als Anlage das Problem Userform36.
Gruß Peter

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


Anzeige
AW: TextBox löschen
17.08.2012 15:11:02
Josef

Hallo Peter,
anbei die Datei ohne TextBox3 und ohne Label9 das sich auch außerhalb des Sichtbereiches befand.
Ich habe nie von Vertrauenswürdigen Herausgebern gesprochen sondern
Zugriff auf das VBA-Projekt zulassen
Userbild
https://www.herber.de/bbs/user/81465.xls

« Gruß Sepp »

Anzeige
AW: TextBox löschen
17.08.2012 15:20:20
Peter
Hallo Sepp,
manche Dinge - wie dieses - hab ich noch nie verwendet und weiß gar nicht, wie ich dahin komme.
Würdest Du mir den Weg dahin noch beschreiben?
Auf jeden Fall vielen Dank für Deine Hilfe.
Gruß Peter
AW: TextBox löschen
17.08.2012 15:39:03
Josef

Hallo Peter,
ich hab kein xl2003 mehr, aber ich glaube "Extras" > "Makros" > "Sicherheit" und da auf dem zweiten Tab.

« Gruß Sepp »

Anzeige
AW: TextBox löschen
17.08.2012 15:51:55
Peter
Hallo Sepp,
so scheint es nicht zu gehen - aber ich werde es herausfinden.
Danke und Gruß Peter
AW: TextBox löschen
17.08.2012 16:04:07
Josef

Hallo Peter,
meine Beschreibung für xl2003 stimmt, siehe: http://support.microsoft.com/kb/282830/de

« Gruß Sepp »

Anzeige
AW: TextBox löschen
17.08.2012 16:04:11
Josef

Hallo Peter,
meine Beschreibung für xl2003 stimmt, siehe: http://support.microsoft.com/kb/282830/de

« Gruß Sepp »

Anzeige
AW: TextBox löschen
18.08.2012 12:52:57
Peter
Hallo Sepp,
Wenn ich den Anweisungen folge: Extras Makro Sicherheit - dann bekomme ich folgendes Bild - Siehe Anlage. Die Häkchen sind ständig gesetzt. Ist mein Excel 2003 Vista Business denn schon so veraltet?
Gruß Peter
https://www.herber.de/bbs/user/81473.doc
Anzeige
AW: TextBox löschen
18.08.2012 13:38:17
Josef

Hallo Peter,
die Einstellungen sind OK, dann stimmt bei dir was anderes nicht, ich kann aber nicht sagen was, den mein Code hat in deiner Beispieldatei tadellos funktioniert.

« Gruß Sepp »

Anzeige
AW: TextBox löschen
18.08.2012 14:30:19
Peter
Hallo Sepp,
ich bin ja froh, dass die fehlerhaften Controls gelöscht sind und konnte das UserForm an den Absender bereinigt zurückschicken.
Danke noch einmal für Deine Hilfe.
Gruß Peter
AW: Fehler gefunden
18.08.2012 22:08:32
Peter
Hallo Sepp,
der Fehler war mein Fehler.
Ich habe versucht, Dein Makro per Doppelklick auf das geöffnete UserForm laufen zu lassen.
Das musste natürlich schief gehen.
Gruß Peter
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

TextBox in Excel löschen


Schritt-für-Schritt-Anleitung

  1. Zugriff auf das VBA-Projekt erlauben:

    • Gehe zu „Extras“ > „Makros“ > „Sicherheit“ und aktiviere die Option „Zugriff auf das VBA-Projekt zulassen“.
  2. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. UserForm auswählen:

    • Suche im Projektfenster die UserForm, die die fehlerhafte TextBox enthält.
  4. TextBox löschen:

    • Verwende den folgenden VBA-Code, um die TextBox zu entfernen:
    Sub removeControl()
       Dim objCtrl As Object, objUF As Object, objProject As Object
       Dim strFormName As String, strControl As String
    
       strFormName = "UserForm1" ' Ändere den Namen entsprechend
       strControl = "TextBox3" ' Ändere den Namen entsprechend
    
       Set objProject = ThisWorkbook.VBProject
       Set objUF = objProject.VBComponents(strFormName)
    
       For Each objCtrl In objUF.Designer.Controls
           If LCase(objCtrl.Name) = LCase(strControl) Then
               objUF.Designer.Controls.Remove objCtrl.Name
           End If
       Next
    End Sub
  5. Makro ausführen:

    • Schließe den VBA-Editor und führe das Makro aus, um die TextBox zu löschen.

Häufige Fehler und Lösungen

  • Fehler 444: „Steuerelemente konnten nicht gelöscht werden“ – Stelle sicher, dass du die richtige UserForm ausgewählt hast und dass der Zugriff auf das VBA-Projekt erlaubt ist.

  • Laufzeitfehler 91: Dieser Fehler tritt auf, wenn die Objektvariable nicht festgelegt ist. Überprüfe, ob du die UserForm korrekt referenziert hast.

  • Textfeld lässt sich nicht löschen: Wenn das Textfeld nicht sichtbar ist, könnte es hinter einem anderen Steuerelement versteckt sein. Versuche, alle Steuerelemente zu durchlaufen, um das Problem zu identifizieren.


Alternative Methoden

  • Manuelles Entfernen: Wenn die TextBox sichtbar ist, kannst du sie einfach im UserForm-Designmodus per Rechtsklick und „Löschen“ entfernen.

  • Excel Form löschen: Gehe zu „Entwicklertools“ > „Entwurf“, wähle die TextBox aus und drücke „Entf“ auf deiner Tastatur.

  • Excel VBA TextBox leeren: Wenn du nur den Inhalt der TextBox entfernen möchtest, kannst du dies mit folgendem Code tun:

    TextBox3.Value = ""

Praktische Beispiele

  • Beispiel 1: Wenn du das Textfeld mit dem Namen „TextBox3“ in der UserForm „UserForm1“ löschen möchtest, ändere die Namen im oben angegebenen Code entsprechend.

  • Beispiel 2: Um alle Textfelder in einer UserForm zu löschen, kannst du eine Schleife verwenden:

    For Each objCtrl In UserForm1.Controls
       If TypeOf objCtrl Is MSForms.TextBox Then
           objCtrl.Value = ""
       End If
    Next objCtrl

Tipps für Profis

  • Fehlerprotokollierung: Füge Fehlerbehandlungsroutinen in deinen VBA-Code ein, um Probleme schnell zu identifizieren.

  • Sicherheitseinstellungen: Achte darauf, dass deine Makrosicherheitseinstellungen die Ausführung von VBA-Code erlauben.

  • Versionen beachten: Stelle sicher, dass du die richtigen Schritte für deine Excel-Version befolgst, insbesondere wenn du mit Excel 2003 arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich ein Textfeld in Excel löschen, wenn es nicht sichtbar ist?
Verwende den VBA-Code, um auf das Textfeld zuzugreifen und es zu entfernen.

2. Warum kann ich das Textfeld nicht löschen?
Es könnte sein, dass du nicht die korrekten Berechtigungen hast oder das Textfeld hinter einem anderen Steuerelement versteckt ist. Stelle sicher, dass du den Zugriff auf das VBA-Projekt erlaubst.

3. Was tun, wenn der VBA-Code nicht funktioniert?
Überprüfe die Namen der UserForm und der Steuerelemente. Achte darauf, dass die Makrosicherheitseinstellungen korrekt sind und dass du die richtige Excel-Version verwendest.

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