Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Combobox leeren


Betrifft: Combobox leeren von: Felix
Geschrieben am: 10.10.2016 10:34:29

Hallo Leute bräuchte Eure Hilfe!

Ich habe in einer Userform Comboboxen. Nach dem ich meine Daten von der Combobox an das Tabellenblatt übergeben haben, hätte ich gerne das in der Combobox nicht der Text drin steht den ich zuletzt ausgewählt habe. als Beispiel ist folgender Code für eine Cbo aufgeführt.

Private Sub cboArtikel_Change()
    Dim rngZelle As Range
    Dim strStart As String
    With Worksheets("Tabelle1")
        Set rngZelle = .Columns(1).Find(cboArtikel.Value, lookat:=xlWhole)
        If Not rngZelle Is Nothing Then
            Do
                If rngZelle.Offset(0, 1) = cboName.Value Then
                    txtPreis = rngZelle.Offset(0, 2)
                    Exit Do
                End If
                Set rngZelle = .Columns(1).FindNext(rngZelle)
           Loop While strStart <> rngZelle.Address --> Hier ist das Problem!!!
    End If
    End With
End Sub

Wenn ich nun die Daten an das Tabellenbaltt übergeben habe und den Code cboArtikel.clear ausführe dann kommt folgenden Meldung
Laufzeitfehler 91:
Objektvariable oder With-Blockvariable nicht festgelegt.

  

Betrifft: probier mal DeinUserformName.cboArtikel.clear von: Matthias L
Geschrieben am: 10.10.2016 10:42:52

Hallo,

wobei: DeinUserformName angepasste werden muss.
Ich weiß ja nicht wie Dein Formular heißt.

Gruß Matthias


  

Betrifft: AW: Combobox leeren von: Peter Feustel
Geschrieben am: 10.10.2016 10:44:38

Hallo Felix,

verwende als erste Zeile Option Explicit, dann wird dir bereits angezeigt, welche Variablen fehlen.

Du musst die erste Fundstelle VOR dem Do-Befehl auch befüllen, sonst kannst du ihn später nicht vergleichen strStart = rngZelle.Address

Gruß Peter


  

Betrifft: vermutlich reicht aber auch ....Text="" von: Matthias L
Geschrieben am: 10.10.2016 10:47:18

Hallo

mit Clear wird ja gelöscht.
Willst Du den letzte angewählten Eintrag nicht mehr sehen reicht evtl schon:

DeinUserFormName.cboArtikel.Text=""
Gruß Matthias


  

Betrifft: AW: Combobox leeren von: Uwe Küstner
Geschrieben am: 10.10.2016 10:57:00

Hallo Felix,

teste auch mal so:

Private Sub cboArtikel_Change()
  Dim rngZelle As Range
  Dim strStart As String
  If cboArtikel.ListIndex > -1 Then
    With Worksheets("Tabelle1")
      Set rngZelle = .Columns(1).Find(cboArtikel.Value, lookat:=xlWhole)
      If Not rngZelle Is Nothing Then
        Do
          If rngZelle.Offset(0, 1) = cboName.Value Then
            txtPreis = rngZelle.Offset(0, 2)
            Exit Do
          End If
          Set rngZelle = .Columns(1).FindNext(rngZelle)
        Loop While strStart <> rngZelle.Address '--> Hier ist das Problem!!!
      End If
    End With
  End If
End Sub
Gruß Uwe


  

Betrifft: AW: Combobox leeren von: Felix
Geschrieben am: 10.10.2016 11:14:13

Vielen Dank für eurer Hilfe.
Mit dem Code von Uwe hat es wunderbar funktioniert. Vielen Dank dafür!


Beiträge aus den Excel-Beispielen zum Thema "Combobox leeren"