Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1204to1208
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
Textboxen in Userform leeren
René
Hallo liebe Excelgemeinde,
ich habe in einer Userform eine Schaltfläche mit der ich meine Comboboxen nach der Datenübernahme leer mache. Der Code sieht wie hier aus
Private Sub CommandButton2_Click()
Worksheets("Tabelle1").Activate
Dim iIndex  As Integer
For iIndex = 1 To 29
With Controls("ComboBox" & iIndex)
.Value = ""
End With
Next iIndex
End Sub

Nun möchte ich aber auch das meine Textboxen mit geleert werden. Allerdings sind die Textboxen so wie hier unten programmiert. Wie kann ich meinen Code anpassen damit die Textboxen mit geleert werden? Kann mir da bitte jemand eine Hilfestellung geben?
Private Sub ComboBox14_Change()
TextBox9 = Application.VLookup(ComboBox14 + 0, Sheets("Stammdatei").Range("G:H"), 2, 0)
End Sub

MfG René
AW: Textboxen in Userform leeren
Hajo_Zi
Hallo René,
schreibe vor End Sub
Textbox9=""

AW: Textboxen in Userform leeren
René
Hallo Hajo,
ganz herzlichen Dank für die super schnelle Hilfe. Funktioniert hervorragend.
Danke ---- Endlosschleife
Herzliche Grüße aus Sachsen
AW: Textboxen in Userform leeren
René
Hallo Hajo,
muss mich doch noch mal melden da es nicht funktioniert. Der Debugger geht auf bei
TextBox9 = Application.VLookup(ComboBox14 + 0, Sheets("Stammdatei").Range("G:H"), 2, 0)
Könnte auch die Felder leer machen mit
UserForm3_Terminate
ActiveWorkbook.PrecisionAsDisplayed = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ThisWorkbook.Saved = True
Application.Quit
Gefällt mir aber nicht weil dann immer die Mappe neu geöffnet werden muss.
Hast Du noch eine Idee?
MfG René
Anzeige
AW: Textboxen in Userform leeren
René
Hallo Hajo,
habe probiert den Code zu erweiter aber es gelingt mir nicht weil ja die Steuervariable
For iIndex = 1 To 29
schon verwendet wird.
Bekommt man das trotzdem in einen Code so in der Art
Dim iIndex As Integer
For iIndex = 8 To 9
With Controls("ComboBox" & iIndex)
.Value = ""
With Controls("TestBox" & iIndex)
.Value = ""
End With
Next iIndex
Weiß mir keinen Rat mehr
MfG René
wieviel & wie heißen denn die Textboxelemente oT
Matthias
AW: wieviel & wie heißen denn die Textboxelemente oT
René
Sie heißen einfach Textbox mit der entsprechenden Nummer und sind glaube ich 9 Stück. Habe die Datei auf Abeit
AW: wieviel & wie heißen denn die Textboxelemente oT
René
Hallo Matthias,
die Anzahl der Textboxen und Comboboxen ist aber unterschiedlich
MfG
René
Anzeige
Schleife über Shapes ...
Matthias
Hallo
Also:
Textbox1
Textbox2
Textbox3
...... bis 9
schau Dir mal das Bsp an:
https://www.herber.de/bbs/user/74062.xls
den fett markierten Bereich musst Du dann anpassen!
Private Sub CommandButton3_Click()
Dim i As Long
For i = 1 To 29
Tabelle1.OLEObjects("Combobox" & i).Object.Text = ""
If i 
Tabelle1.OLEObjects("TextBox" & i).Object.Text = ""
End If
Next
End Sub
eine weitere Beispieldatei aus dem Archiv findest Du z.B. hier:
https://www.herber.de/forum/archiv/908to912/t909067.htm#909077
Gruß Matthias
Anzeige
AW: Schleife über Shapes ...
René
Hallo Matthias,
ich probiere das morgen früh aus und gebe Dir bescheid- Vielen dank erst mal für Deine Mühe. Ich freue mich das mir jemand geholfen hat.
MfG René
Vorbeugend für die Mitleser ... ;o)
Matthias
Hallo
Mir ist bewusst, das man da auch If i schreiben kann
If i 8 Or i = 9 Then ... war ein Schreibfehler. In der Datei steht
If i = 8 Or i = 9 Then
Gruß Matthias
Wie wär's m. If Between(i, "8:9", 1) Then ;-> orT
Luc:-?
Gruß Luc :-?
@Matthias, danke.....
hary
Moin Matthias
....fuer den Seitenhieb LOL. *schmerz*
einen schoenen sonnigen Exceltag.
gruss hary
AW: @Matthias, danke.....
René
Hallo liebe Excelgemeinde,
nun muss ich doch noch mal posten. Der Code von Matthias ist super. Allerdings stehen meine Textboxen und Comboboxen in einer Userform und nicht in einer Tabelle. Was muss ich da noch ändern damit die Userform angesprochen wird?
MfG aus Sachsen
René
Anzeige
AW: @Matthias, danke.....
hary
Hallo Rene
ungetestet.

Dim i As Long
For i = 1 To 29
Me.Controls("Combobox" & i).Text = ""
If i 

hilft's?
gruss hary
betr. muss heissen Me.Controls owT gruss
hary
.
AW: betr. muss heissen Me.Controls owT gruss
René
Hallo Hary,
habe den Code probiert. Nun kommt aber der Debuger und sagt
Eigenschaft Text kontte nicht gesetzt werden. Ungültiger Eigenschaftswert. Hm? Ist das was in den Combo oder Textboxen bei Eigenschaften anzupassen?
MfG René
AW: betr. muss heissen Me.Controls owT gruss
René
Hallo Hary,
habe jetzt heraus gefunden warum das nicht funktioniert. Liegt daran das hinter manchen Comboboxen ein Verweis für eine Textbox steht
Private Sub ComboBox14_Change()
TextBox9 = Application.VLookup(ComboBox14 + 0, Sheets("Stammdatei").Range("G:H"), 2, 0)
End Sub
Bekommt man das trotzdem irgendwie hin. Mein Code schaut bisher so aus. Aber würde schon gern Deinen verwenden.
Dim i As Long
Dim iIndex As Integer
For iIndex = 1 To 29
With Controls("ComboBox" & iIndex)
.Value = ""
End With
Next iIndex
For iIndex = 18 To 20
With Controls("TextBox" & iIndex)
.Value = ""
End With
Next iIndex
MfG René
Anzeige
ungetestet ...
Matthias
Hallo
probier mal ...
Option Explicit
Private Sub CommandButton1_Click()
Dim iIndex As Integer
Application.EnableEvents = False
For iIndex = 1 To 29
Controls("ComboBox" & iIndex).Value = ""
If iIndex > 17 And iIndex True
End Sub
Gruß Matthias
AW: ungetestet ...
René
Hallo Matthias,
da kommt wieder Eigenschaft Value konnte nicht gesetzt werden bei
Private Sub ComboBox14_Change()
TextBox9 = Application.VLookup(ComboBox14 + 0, Sheets("Stammdatei").Range("G:H"), 2, 0)
End Sub

MfG René ICh verzweifel Grins
Anzeige
mehr kann ich nicht tun ...
Matthias
Hallo
Kann ich nicht nachvollziehen. Vielleicht stimmt ja irgend ein Name nicht
Mehr kann ich nicht tun. Ich kann auch nur bis XL2007 testen (2010 hab ich nicht)
In meiner TestDatei klappt das ohne Probleme (Xl2000)
schreib mal Me. vor Controls oder Deinen korrekten UserformNamen also UserForm1 ö.Ä
Dim iIndex As Integer
Application.EnableEvents = False
For iIndex = 1 To 29
Me.Controls("ComboBox" & iIndex).Value = ""
If iIndex > 17 And iIndex Me.Controls("TextBox" & iIndex).Value = ""
Next
Application.EnableEvents = True
Vielleicht sollte man auch korrekterweise den Type des Controls ansprechen
anstatt mit dem Namen des Controls zu arbeiten.
Gruß Matthias
Anzeige
AW: ungetestet ...
René
Hallo,
kann man eventuell in den wenigen Comboboxen was anpassen an dem Code
Private Sub ComboBox13_Change()
TextBox8 = Application.VLookup(ComboBox13, Sheets("Stammdatei").Range("E:F"), 2, 0)
End Sub
Denn genau daran hängt es weil alle anderen Comboboxen und Textboxen werden sauber geleert.
MfG René
letzter Versuch
Matthias
Hallo
Dann frag doch vorher ab ob die Combobox leer ist
nach diesem Motto:
Private Sub ComboBox14_Change()
If ComboBox14  "" Then TextBox9.Text = Application.VLookup(...)
End Sub
Gruß Matthias
Anzeige
AW: letzter Versuch
René
Hallo Matthias,
vielen herzlichen Dank für Deine Mühe. Kannst Du mir aber bitte noch sagen was ich am besten in die Klammer hinter VLookup schreibe?
MfG René
Das ist doch Dein Code ...
Matthias
Hallo


Zitat:
kann man eventuell in den wenigen Comboboxen was anpassen an dem Code
Private Sub ComboBox13_Change()
TextBox8 = Application.VLookup(ComboBox13, Sheets("Stammdatei").Range("E:F"), 2, 0)
End Sub
Denn genau daran hängt es weil alle anderen Comboboxen und Textboxen werden sauber geleert.

Ende Zitat


Ich habe das in Klammern nur nicht ausgeschrieben, damit es in eine Zeile passt
Den Code hast Du doch selbst gepostet.
Ich hatte Dir ja nur die Schleife geschrieben um die Controls zu leeren.
So wie es aussieht, willst Du
per SVerweis-Funktion den Wert aus Combobox13 in Tabelle "Stammdatei" in Spalte(E) suchen
und den Wert aus Spalte(F) in die Textbox8 schreiben.
Mehr kann ich da auch nicht rauslesen.
Vielleicht gibt die Function.VLookup ja schon selbst einen Fehler zurück, weil nichts gefunden wird.
Ich weiß das ja nicht, ich kenne doch Deine Datei nicht.
Gruß Matthias
Anzeige
AW: Das ist doch Dein Code ...
René
Hallo Matthias,
ja genau das ist das Prob. Die VLooup findet nichts mehr wenn die ComboBox leer ist und damit kann die Eingeschaft Value nicht gesetzt werden! Hm , völlig ratlos.
MfG René
lad doch mal eine Kopie hoch ... owT
Matthias
AW: lad doch mal eine Kopie hoch ... owT
René
Hallo Matthias,
ist eine große Arbeitsdatei. Werde mal bis morgen eine Auskopplung hier rein stellen.
Bis dahin und noch einen schönen Tag MfG René
Beispieldatei!!!!
René
Hallo liebe Excelgemeinde,
nun habe ich Euch mal eine Beispieldatei hochgeladen.
1. Problem
Wenn ich in der Userform auf der Multipage Name suche und die Boxen danach leeren will kommt vom Debugger die Eigenschaft Value kann nicht gesetzt werden bei
Private Sub ComboBox4_Change()
TextBox2 = Application.VLookup(ComboBox4, Sheets("C").Range("B:C"), 2, 0)
End Sub
2. Problem
Wenn man in der UserForm Multipage mit Registerreiter Adresse sucht werden die Comboxen und Textbox ordentlich geleert da die Textbox ohne Verweis auf diesem Register arbeitet.
Allerdings funktioniert die Suche im Registerreiter Adresse der Multipage nicht mehr wenn die UserForm mit einem Schaltbutton aus einer anderen Tabelle geöffnet wird (siehe Tabelle D Schaltbutton)
Habt ihr eine Idee wie ich diese zwei Probleme gelöst bekomme. Ihr habt Euch ja schon sehr viel Mühe gemacht. Matthias hat vorgeschlagen mal diese Beispieldatei hochzuladen.
Es ist meine letzte Hoffnung nach stundenlangem Basteln.
https://www.herber.de/bbs/user/74085.xlsm
MfG René
bin noch nicht ganz sicher ...
Matthias
Hallo
Wenn Du das Formular aus der anderen Tabelle heraus öffnest. mußt Du aber
hier: vTemp = Range("B4:D" & Cells(Rows.Count, 2).End(xlUp).Row)
auf das Tabellenblatt referenzieren, in dem die Daten stehen.
Denn mit Range("DeinBereich") beziehst Du Dich auf das aktive Tabellenblatt.
Und da steht nix. Also ist vTemp leer
Und wenn vTemp leer ist, dann sind auch Deine ComboboxObjekte leer!
also nach diesem Motto
Private Sub ComboBox2_Change()
Dim SC_SL  As Object
Dim vTemp  As Variant
Dim iIndx  As Integer
Dim WkSh As Worksheet 'hinzugefügt
Set WkSh = ThisWorkbook.Worksheets("C") 'hinzugefügt
Set SC_SL = CreateObject("System.Collections.SortedList")
With WkSh 'hinzugefügt
vTemp = .Range("B4:D" & .Cells(Rows.Count, 2).End(xlUp).Row) 'Punkte hinzugefügt
End With 'hinzugefügt
For iIndx = 1 To UBound(vTemp)
If vTemp(iIndx, 1) = ComboBox1.Value And _
vTemp(iIndx, 2) = ComboBox2.Value Then
If vTemp(iIndx, 3)  "" Then SC_SL(vTemp(iIndx, 3)) = ""
End If
Next iIndx
ComboBox3.Clear
For iIndx = 0 To SC_SL.Count - 1
ComboBox3.AddItem SC_SL.GetKey(iIndx)
Next iIndx
Set WkSh = Nothing 'hinzugefügt
End Sub
Das solltest Du für die anderen ComboboxControls auch so machen.
Also immer schön das richtige Tabellenblatt referenzieren.
Gruß Matthias
AW: bin noch nicht ganz sicher ...
René
Hallo Matthias,
erst mal vielen herzlichen Dank. Ich habe das nach Deinen Hinweisen angepasst und Problem 2 ist damit behoben. Was aber immer noch nicht funktioniert ist das Leeren der Textbox auf der Multipage Name weil da eben dieser blöde Verweis in der zugehörigen ComboBox ist.
Private Sub ComboBox4_Change()
TextBox2 = Application.VLookup(ComboBox4, Sheets("C").Range("B:C"), 2, 0)
End Sub
MfG René
If ComboBox4.Value <> "" ...
Matthias
Hallo
If ComboBox4.Value "" Then TextBox2 = Application.VLookup(ComboBox4.Value, Sheets("C").Range("B:C"), 2, 0)
sollte doch klappen und hatte ich auch schonmal vorgeschlagen.
Wenn das alles nicht hilft, dann setze ein On Error Resume Next davor.
Ist aber mE das letzte Mittel, da es jegliche Fehler ignioriert.
Dann findest Du evtl andere auftretende Fehler nicht mehr
Übrigens kommt in meiner Kopie dieser Fehler nicht, oder sagen wir mal
ich habs noch nicht geschafft, das der Fehler kommt.
Aber ich frage eben vorher auch ab ob die Combobox4 leer ist.
If ComboBox4.Value "" Then TextBox2 = ... usw.
Kann aber auch an der Version liegen. Ich kann nur bis XL2007 testen.
Gruß Matthias
Danke für die viele Mühe an Matthias
René
Hallo Matthias,
jetzt funktioniert alles. Wie kann ich Dir bloß danken? Bin jetzt sehr froh und kann mich nun weiteren Problemen widmen die ich noch bewältigen muss.
Herzlichen Dank noch mal aus Sachsen. Weiß garnicht wie ich das wieder gut machen kann
MfG René
:o)
Matthias
Hallo
Ist schon ok. Dafür ist das Forum ja da.
Grüße ebenfalls aus Sachsen :o)
Matthias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige