Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
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
Inhaltsverzeichnis

Combobox - angezeigter Wert löschen

Combobox - angezeigter Wert löschen
09.03.2014 14:02:06
Sabrina
Hallo Jungs,
hab mal ne Frage für ne Hausarbeit.
Ich lösche in einer Methode Bestimmte Bereiche meines Datenblattes

Range("G1:G4").ClearContents 

und so weiter ...
wie kann ich die Inhalete der Steuerbox Kombinationsfeld löschen.
Ich habe mehrere davon im Datenblatt. Möchte aber dass beim Löschen auch alle alten Eintragungen in den Steuerboxen gelöscht werden.
Schönen Tag Sabrina

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 14:21:39
Matthias

AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 14:38:08
Sabrina
Hallo Matthias,
dann kommt der Laufzeitfehler 424 - Objekt nicht gefunden.
Was mache ich falsch?
LG
Sabrina

AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 14:38:23
Sabrina
Hallo Matthias,
dann kommt der Laufzeitfehler 424 - Objekt nicht gefunden.
Was mache ich falsch?
LG
Sabrina

AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 15:47:46
ransi
Hallo SAbrina
Zeigst du uns mal den kompletten code ?
Wann kommt da der Laufzeitfehler ?
ransi

AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 16:16:34
Sabrina
Hallo Matthias,
dann kommt der Laufzeitfehler 424 - Objekt nicht gefunden.
Was mache ich falsch?
LG
Sabrina

AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 16:20:50
Sabrina
Hallo Ransi,
der Code Lautet
Sub leeren()
ComboBox1.Clear
Range("G1:G4").ClearContents
Range("B5:C5").ClearContents
End Sub
Sobalt ich das Makro ausführe
Gruß Sabrina

Anzeige
AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 16:59:16
Matze
Hallo Sabrina,
du solltest auch angeben in welcher USERFORM diese Combobox ist
Sub leeren()
NAMEDERUSERFORM.ComboBox1.Clear
Range("G1:G4").ClearContents 'funktioniert so nur im "AKTUELLEN Blatt"
Range("B5:C5").ClearContents 'funktioniert so nur im "AKTUELLEN Blatt"
End Sub
und so kann der Code von überall her ausgeführt werden.
Sub leeren()
NAMEDERUSERFORM.ComboBox1.Clear
With Sheets("Tabelle1") 'Anpassen!
.Range("G1:G4").ClearContents 'den PUNKT vor Range nicht vergessen
.Range("B5:C5").ClearContents 'den PUNKT vor Range nicht vergessen
end With
End Sub
Gruß Matze

Anzeige
AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 17:09:43
Sabrina
Hallo Matze,
ich habe keine Userfoms sondern die Combobox als Steuerelement.
LG
Sabrina

AW: z.B. Combobox.Clear und dann neu einlesen owT
09.03.2014 17:31:03
Matze
Hallo Sabrina,
dann teste das mal:
Option Excplicit
Sub Leeren()
Dim objOle As OLEObject
For Each objOle In ActiveSheet.OLEObjects
If objOle.progID = "Forms.ComboBox.1" Then objOle.Object.Clear
Next
End Sub
Matze

Dropdowns-Auflistung
09.03.2014 18:20:33
ransi
HAllo Sabrina
Dieses Steuerelement findest du in der Dropdowns-Auflistung des Tabellenblattes.
Ist leider undokumntiert.
Du kannst aber trotzdem drauf zugreifen.
Schau es dir mal an:
Option Explicit

Sub leeren()
    With Sheets("Tabelle1").DropDowns("Dropdown 1")
        .ListFillRange = "" 'Inhalte leeren
        .LinkedCell = "" 'Verknüpfte Zelle "entknüpfen"
    End With
End Sub


Sub fuellen()
    With Sheets("Tabelle1").DropDowns("Dropdown 1")
        .ListFillRange = "A1:A100"
        .LinkedCell = "B1"
    End With
End Sub



ransi

Anzeige
AW: Dropdowns-Auflistung
09.03.2014 18:41:48
Sabrina
Hallo Jungs,
schon mal danke für eure Hilfe,
aber beide Vorschläge funktionieren bei mir nicht.
Habe mal eine Beispielsmappe hochgeladen.
https://www.herber.de/bbs/user/89598.xlsm
Vlt. stimmt ja bei mir in Excel was nicht.
Gruß
Sabrina

Then objOle.Object = "" owT
09.03.2014 18:47:30
robert

Combobox1.ListFillRange = ""
09.03.2014 19:08:03
ransi
Hallo Sabrina
Du musst das Objekt korekt ansprechen. DAnn gehts.
Außerdm gibt es da noch andere Möglichkeite als ListFillRange um eine ComboBox zu füllen.
Teste mal ein wenig:
Sub leeren1()
    With Sheets("Tabelle1").ComboBox1
        .Value = ""
        .ListFillRange = ""
    End With
End Sub


Sub Füllen1()
    With Sheets("Tabelle1").ComboBox1
        .ListFillRange = "G2:G10"
        .Value = .List(0)
    End With
End Sub





Sub Füllen2()
    Dim arr
    arr = Sheets("Tabelle1").Range("G2:G10")
    With Sheets("Tabelle1").ComboBox1
        '.ListFillRange = ""
        .List = arr
        .Value = .List(0)
    End With
End Sub


ransi

Anzeige
Es geht alles .. aber eine Frage habe ich noch
09.03.2014 19:30:57
Sabrina
Hallo Jungs,
danke für eure Hilfe. Es funktioniert jetzt und ich habe wieder einiges gelernt.
Eine Frage habe ich noch .. ich möchte innerhalb eines Makros eine Abfrage machen ob die Combobox leer ist. Dazu habe ich folgenes eingegeben.

If ComboBox1.Value = Null Then
Else
Call makro2_oeffnen
End If

Es funktioniert aber nicht .. das Makro wir immer ausgeführt.
Ich habe einen Haltepunkt gesetzt und schaue mit F8 was passiert.
Wenn ich mit dem Courser über "ComboBox1.Value" fahre erscheint auch der Wert Null.
LG
Sabrina

Anzeige
AW: Es geht alles .. aber eine Frage habe ich noch
09.03.2014 19:59:36
Hannelore
Hallo Sabrina,
If ComboBox1.ListCount = False Then
Else
Dein Makro
End If
Gruß
Hanni

Wie lösche ich den gesamten Inhalt der Combobox
09.03.2014 21:10:01
Sabrina
Hallo Hani, hallo Jungs
Ich habe jetzt mit
   For Each objOle In ActiveSheet.OLEObjects
If objOle.progID = "Forms.ComboBox.1" Then objOle.Object = ""
Next

hinbekommen dass beim leeren alle ComboBoxen leer ausehen.
Wenn ich aber wie von Hannelore vorgeschlagen die Abfrage
If ComboBox1.ListCount = False Then
Else
Dein Makro
End If
ausführe erhalte ich noch einen Wert.
Also die Combobox ist nicht ganz geleert.
Was muss ich denn tun wenn das Steuerelement ComboBox1 komplett geleert werden soll?
Gruß
Sabrina

Anzeige
AW: Wie lösche der Combobox
09.03.2014 22:09:06
Hannelore
Hallo Sabrina,
probiere es so
Sub cboLoe()
Dim oOle As OLEObject
For Each oOle In ActiveSheet.OLEObjects
If TypeName(oOle.Object) = "ComboBox" Then
oOle.Object.Clear
End If
Next
End Sub

Gruß
Hanni

AW: Wie lösche der Combobox
09.03.2014 22:15:39
Sabrina
Hallo,
dann entsteht ein Laufzeitfehler "-2147467258 (80004005)

so gehts ... ListIndex = -1
09.03.2014 22:49:37
Matthias
Hallo
Sub leeren()
Tabelle1.ComboBox1.Text = ""
End Sub

Sub WennLeer()
If Tabelle1.ComboBox1.ListIndex = -1 Then
MsgBox "makro2_oeffnen" 'hier Dein Makro starten
End If
End Sub
Gruß Matthias

Anzeige
AW: so gehts ... ListIndex = -1
09.03.2014 22:57:53
Sabrina
Wenn ich
Sub leeren()
Tabelle1.ComboBox1.Text = ""
End Sub
aufrufe kommt Laufzeitfehler 424 - Objekt erforderlich

evtl. ist Deine Datei defekt!
09.03.2014 23:10:04
Matthias
Hallo
Wenn ich Combobox1 komplett lösche Datei speichere und eine neue Combobox platziere
ist im Normalfall ListFillrange leer.
In Deiner Datei ist das abe nicht so!
Deine Datei scheint korrupt zu sein
https://www.herber.de/bbs/user/89603.xlsm
Gruß Matthias

AW: evtl. ist Deine Datei defekt!
09.03.2014 23:54:42
Sabrina
Oh man .. wie blöde. Was mache ich nun?
In der Datei ist zu viel drinnen um sie neu zu schreiben :)

Anzeige
AW: evtl. ist Deine Datei defekt!
10.03.2014 00:13:28
Matthias
Hallo
Was mache ich nun?
Das kann ich nicht beurteilen,
aber für die Zukunft rate ich Dir immer Sicherheitskopien anzulegen.
Ich mach das seit vielen Jahren so.
Bei Projekten die mir wichtig sind, lege ich immer neue Versionen an.
Dann benenne ich die Datei auch so z.B. ..... DateiName_Version2.xls.
Evtl. solltest Du das in Zukunft auch so machen.
Mehr kann ich leider nicht für Dich tun.
Gruß Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige