Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Wenn Combobox1 click, dann Combobox 2&3 leeren | Herbers Excel-Forum


Betrifft: Wenn Combobox1 click, dann Combobox 2&3 leeren von: Ingo
Geschrieben am: 06.01.2012 14:54:49

Hallo liebe Excelprofis,
ich habe auf UF1 drei Comboboxen, die mir nach Auswahl, die Listbox1 und verschiedene Textboxen füllt.
Wenn ich zuerst Combobox1 anklicke steht dann ein Wert zur Auswahl und die dazugehörigen Daten werden in Listbox1 geschrieben, wenn ich allerdings Combobox 2 od 3 anklicke bleibt der Wert in CB1 stehen.
Frage: Wie kann ich es anstellen, dass bei Auswahl CB1 die CBen 2 & 3 und entsprechenden Textboxen geleert werden? Bei CB 2 entsprechend CB 1 & 3 etc. Die Listbox wird zuverlässig vor Neueintrag geleert.
Bei: Combobox2.clear wird bei "Suche = ComboBox2.List(ComboBox2.ListIndex, 0)" gemeckert!
Vielen Dank im voraus
LG Ingo

Private Sub ComboBox1_Change() 'Klasse
Dim K As Long
Dim N As Long
Dim Suche As String
Dim Stunden As Double
Suche = ComboBox1.List(ComboBox1.ListIndex, 0)
With Worksheets("AlleDaten")
          ListBox1.Clear
               For K = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
         If Suche = .Cells(K, 1).Value Then
            ListBox1.AddItem
            N = ListBox1.ListCount - 1
            ListBox1.List(N, 0) = .Cells(K, 1).Value
            ListBox1.List(N, 1) = .Cells(K, 2).Value
            ListBox1.List(N, 2) = .Cells(K, 3).Value
            ListBox1.List(N, 3) = Format(.Cells(K, 4).Value, "##0.00")
            ListBox1.List(N, 4) = Format(.Cells(K, 5).Value, "##0.00")
            ListBox1.List(N, 5) = .Cells(K, 6).Value
            'ListBox1.List(N, 5) = Format(.Cells(K, 6).Value, "##0.00")
            ListBox1.List(N, 6) = K
            Stunden = Format(Stunden + .Cells(K, 4).Value, "##0.00")
         End If
      Next
            TextBox15.Value = Stunden
End With
End Sub
Private Sub ComboBox2_Change() 'Fach
Dim K As Long
Dim N As Long
Dim Suche As String
Dim Stunden As Double
Suche = ComboBox2.List(ComboBox2.ListIndex, 0)
With Worksheets("AlleDaten")
     ListBox1.Clear
     For K = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
         If Suche = .Cells(K, 2).Value Then
            ListBox1.AddItem
            N = ListBox1.ListCount - 1
            ListBox1.List(N, 0) = .Cells(K, 1).Value
            ListBox1.List(N, 1) = .Cells(K, 2).Value
            ListBox1.List(N, 2) = .Cells(K, 3).Value
            ListBox1.List(N, 3) = Format(.Cells(K, 4).Value, "##0.00")
            ListBox1.List(N, 4) = Format(.Cells(K, 5).Value, "##0.00")
            ListBox1.List(N, 5) = .Cells(K, 6).Value
            'ListBox1.List(N, 5) = Format(.Cells(K, 6).Value, "##0.00")
            ListBox1.List(N, 6) = K
            Stunden = Format(Stunden + .Cells(K, 4).Value, "##0.00")
         End If
      Next
            TextBox15.Value = Stunden
End With
End Sub
Private Sub ComboBox3_Change() 'Name
Dim K As Long
Dim N As Long
Dim Suche As String
Dim Stunden As Double
  
With Me
Sheets("Namen").Activate
Range("a:a").Select

Selection.Find(what:=.ComboBox3.Value, _
after:=ActiveCell, _
LookIn:=xlFormulas, lookat:=xlPart, _
searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False).Activate

.TextBox10.Value = Round(ActiveCell.Offset(0, 5).Value, "2") ' Altersentlastung
.TextBox11.Value = Round(ActiveCell.Offset(0, 6).Value, "2") ' Entlast.Beh
.TextBox12.Value = Round(ActiveCell.Offset(0, 7).Value, "2") ' Entl.Vorgriff
.TextBox9.Value = Round(ActiveCell.Offset(0, 8).Value, "2") ' Entl SFD
.TextBox14.Value = Round(ActiveCell.Offset(0, 2).Value, "2") 'Deputat
.TextBox7.Value = Round(ActiveCell.Offset(0, 10).Value, "2") 'Summe Entl
.TextBox8.Value = Round(ActiveCell.Offset(0, 9).Value, "2") 'Entl Std Konto
.TextBox13.Value = Round(ActiveCell.Offset(0, 11).Value, "1") 'Bez Std
'TextBox34.Value = Round(ActiveCell.Offset(0, 34).Value, "2")
End With
 
  Suche = ComboBox3.List(ComboBox3.ListIndex, 0)
 With Worksheets("AlleDaten")
            ListBox1.Clear
     For K = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
         If Suche = .Cells(K, 3).Value Then
            ListBox1.AddItem
               N = ListBox1.ListCount - 1
            ListBox1.List(N, 0) = .Cells(K, 1).Value
            ListBox1.List(N, 1) = .Cells(K, 2).Value
            ListBox1.List(N, 2) = .Cells(K, 3).Value
            ListBox1.List(N, 3) = Format(.Cells(K, 4).Value, "##0.00")
            ListBox1.List(N, 4) = Format(.Cells(K, 5).Value, "##0.00")
            ListBox1.List(N, 5) = .Cells(K, 6).Value
            'ListBox1.List(N, 5) = Format(.Cells(K, 6).Value, "##0.00")
            ListBox1.List(N, 6) = K
            Stunden = Format(Stunden + .Cells(K, 4).Value, "##0.00")
         End If
      Next
           TextBox15.Value = Stunden
      'TextBox32.Text = Worksheets("Namen").Cells(ComboBox3.ListIndex + 10)
End With
'On Error GoTo Fehler
 
'Fehler:
'MsgBox "Dieser Name ist nicht in Tabelle NAMEN vorhanden, oder muss bearbeitet werden!"


End Sub

  

Betrifft: AW: Wenn Combobox1 click, dann Combobox 2&3 leeren von: Frank H.
Geschrieben am: 06.01.2012 15:43:46

Hallo Ingo!

Probier mal:

ComboBox2 = ""
ComboBox3 = ""

Musst du in die entsprechenden Prozeduren einbauen und immer anpassen!

Hilfts?

Gruß Frank H.!!!


  

Betrifft: AW: Wenn Combobox1 click, dann Combobox 2&3 leeren von: Ingo
Geschrieben am: 06.01.2012 16:24:36

Hallo Frank,
das hatte ich auch schon probiert, leider klappt´s nicht.
"Eigenschaft List konnte nicht abgerufen werden"
ich habe: ComboBox2 = ""
ComboBox3 = ""
vor " Suche = ComboBox1.List(ComboBox1.ListIndex, 0) eingefügt, dann kommt der Fehler.
Hast Du noch eine Idee?
Gruß Ingo


  

Betrifft: AW: Wenn Combobox1 click, dann Combobox 2&3 leeren von: Ingo
Geschrieben am: 06.01.2012 18:14:09

Ich vergaß das "Häckchen" ;-(


  

Betrifft: ! Wenn Combobox1 click, dann Combobox 2&3 leeren von: Ingo
Geschrieben am: 06.01.2012 18:19:26

Ich vergaß das Häckchen ;-(


  

Betrifft: Habe es anders gelöst von: Ingo
Geschrieben am: 10.01.2012 20:49:51

Ich habe das Problem anders gelöst.
Gruß
Ingo


Beiträge aus den Excel-Beispielen zum Thema "Wenn Combobox1 click, dann Combobox 2&3 leeren"