Microsoft Excel

Herbers Excel/VBA-Archiv

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

User-Form ComboBoxen füllen ohne Änderung

Betrifft: User-Form ComboBoxen füllen ohne Änderung von: Petro
Geschrieben am: 01.09.2004 17:36:26

Hallo,
habe folgendes Problem:
in einer Userform habe ich 9 ComboBoxen,
die erste ist zum wählen einer Gruppe die dann den zu wählenden Inhalt der 8 anderen bestimmt, solange aber in der ersten nichts gewählt ist bleiben die 8 anderen mit dem Wert der bereits im Arbeitsblatt vorhanden ist gefüllt und sollte erst nach Änderung der jeweiligen Box NUR in dem Feld des Arbeitsblattes geändert werden Folgender Code:

Private Sub UserForm_Initialize()
    Sheets("Spieler").Select
    Range("A4:F558").Select
    Selection.Sort Key1:=Range("A4"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    SPTag = Sheets("DKB").Cells(1, 53).Value
    temp_verein = ""
    izeile = 0
    iRowL = Sheets("Spieler").Cells(Rows.Count, 1).End(xlUp).Row
    With Worksheets("Spieler")
        For iRow = 4 To iRowL
            If Not IsEmpty(.Cells(iRow, 1)) And .Cells(iRow, 1).Value <> temp_verein Then
                temp_verein = .Cells(iRow, 1).Value
                CB_Verein.AddItem .Cells(iRow, 1).Value
                izeile = izeile + 1
            End If
        Next iRow
    End With
    CB_Sp1.Value = Sheets(SPTag).Range("B60").Value
    CB_Sp2.Value = Sheets(SPTag).Range("B65").Value
    CB_Sp3.Value = Sheets(SPTag).Range("B70").Value
    CB_Sp4.Value = Sheets(SPTag).Range("B75").Value
    CB_Sp5.Value = Sheets(SPTag).Range("B80").Value
    CB_Sp6.Value = Sheets(SPTag).Range("B85").Value
    CB_Sp7.Value = Sheets(SPTag).Range("B90").Value
    CB_Sp8.Value = Sheets(SPTag).Range("B95").Value
End Sub

Private Sub CB_Verein_Change()
    Verein_wahl = CB_Verein.Value
    izeile = 0
    CB_Sp1.ColumnCount = 3
    CB_Sp1.ColumnWidths = "100"
    CB_Sp2.ColumnCount = 3
    CB_Sp2.ColumnWidths = "100"
    CB_Sp3.ColumnCount = 3
    CB_Sp3.ColumnWidths = "100"
    CB_Sp4.ColumnCount = 3
    CB_Sp4.ColumnWidths = "100"
    CB_Sp5.ColumnCount = 3
    CB_Sp5.ColumnWidths = "100"
    CB_Sp6.ColumnCount = 3
    CB_Sp6.ColumnWidths = "100"
    CB_Sp7.ColumnCount = 3
    CB_Sp7.ColumnWidths = "100"
    CB_Sp8.ColumnCount = 3
    CB_Sp8.ColumnWidths = "100"
    iRowL = Sheets("Spieler").Cells(Rows.Count, 1).End(xlUp).Row
    With Worksheets("Spieler")
        For iRow = 4 To iRowL
            If Not IsEmpty(.Cells(iRow, 4)) And .Cells(iRow, 1).Value = Verein_wahl Then
                CB_Sp1.AddItem .Cells(iRow, 4).Value
                CB_Sp1.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp1.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                CB_Sp2.AddItem .Cells(iRow, 4).Value
                CB_Sp2.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp2.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                CB_Sp3.AddItem .Cells(iRow, 4).Value
                CB_Sp3.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp3.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                CB_Sp4.AddItem .Cells(iRow, 4).Value
                CB_Sp4.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp4.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                CB_Sp5.AddItem .Cells(iRow, 4).Value
                CB_Sp5.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp5.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                CB_Sp6.AddItem .Cells(iRow, 4).Value
                CB_Sp6.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp6.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                CB_Sp7.AddItem .Cells(iRow, 4).Value
                CB_Sp7.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp7.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                CB_Sp8.AddItem .Cells(iRow, 4).Value
                CB_Sp8.List(izeile, 1) = .Cells(iRow, 2) ' zweite Spalte
                CB_Sp8.List(izeile, 2) = .Cells(iRow, 3) ' dritte Spalte (nicht sichtbar)
                izeile = izeile + 1
            End If
        Next iRow
    End With
        CB_Sp1.AddItem ""
        CB_Sp1.List(izeile, 1) = ""
        CB_Sp1.List(izeile, 2) = ""
        CB_Sp2.AddItem ""
        CB_Sp2.List(izeile, 1) = ""
        CB_Sp2.List(izeile, 2) = ""
        CB_Sp2.AddItem ""
        CB_Sp2.List(izeile, 1) = ""
        CB_Sp2.List(izeile, 2) = ""
        CB_Sp3.AddItem ""
        CB_Sp3.List(izeile, 1) = ""
        CB_Sp3.List(izeile, 2) = ""
        CB_Sp4.AddItem ""
        CB_Sp4.List(izeile, 1) = ""
        CB_Sp4.List(izeile, 2) = ""
        CB_Sp5.AddItem ""
        CB_Sp5.List(izeile, 1) = ""
        CB_Sp5.List(izeile, 2) = ""
        CB_Sp6.AddItem ""
        CB_Sp6.List(izeile, 1) = ""
        CB_Sp6.List(izeile, 2) = ""
        CB_Sp7.AddItem ""
        CB_Sp7.List(izeile, 1) = ""
        CB_Sp7.List(izeile, 2) = ""
        CB_Sp8.AddItem ""
        CB_Sp8.List(izeile, 1) = ""
        CB_Sp8.List(izeile, 2) = ""
Sheets(SPTag).Select
End Sub

Private Sub CB_Sp1_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B60").Value = CB_Sp1.List(CB_Sp1.ListIndex, 0)
Sheets(SPTag).Range("I60").Value = CB_Sp1.List(CB_Sp1.ListIndex, 1)
Sheets(SPTag).Range("H60").Value = CB_Sp1.List(CB_Sp1.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub CB_Sp2_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B65").Value = CB_Sp2.List(CB_Sp2.ListIndex, 0)
Sheets(SPTag).Range("I65").Value = CB_Sp2.List(CB_Sp2.ListIndex, 1)
Sheets(SPTag).Range("H65").Value = CB_Sp2.List(CB_Sp2.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub CB_Sp3_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B70").Value = CB_Sp3.List(CB_Sp3.ListIndex, 0)
Sheets(SPTag).Range("I70").Value = CB_Sp3.List(CB_Sp3.ListIndex, 1)
Sheets(SPTag).Range("H70").Value = CB_Sp3.List(CB_Sp3.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub CB_Sp4_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B75").Value = CB_Sp4.List(CB_Sp4.ListIndex, 0)
Sheets(SPTag).Range("I75").Value = CB_Sp4.List(CB_Sp4.ListIndex, 1)
Sheets(SPTag).Range("H75").Value = CB_Sp4.List(CB_Sp4.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub CB_Sp5_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B80").Value = CB_Sp5.List(CB_Sp5.ListIndex, 0)
Sheets(SPTag).Range("I80").Value = CB_Sp5.List(CB_Sp5.ListIndex, 1)
Sheets(SPTag).Range("H80").Value = CB_Sp5.List(CB_Sp5.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub CB_Sp6_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B85").Value = CB_Sp6.List(CB_Sp6.ListIndex, 0)
Sheets(SPTag).Range("I85").Value = CB_Sp6.List(CB_Sp6.ListIndex, 1)
Sheets(SPTag).Range("H85").Value = CB_Sp6.List(CB_Sp6.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub CB_Sp7_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B90").Value = CB_Sp7.List(CB_Sp7.ListIndex, 0)
Sheets(SPTag).Range("I90").Value = CB_Sp7.List(CB_Sp7.ListIndex, 1)
Sheets(SPTag).Range("H90").Value = CB_Sp7.List(CB_Sp7.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub CB_Sp8_Change()
SPTag = Sheets("DKB").Cells(1, 53).Value
Sheets(SPTag).Range("B95").Value = CB_Sp8.List(CB_Sp8.ListIndex, 0)
Sheets(SPTag).Range("I95").Value = CB_Sp8.List(CB_Sp8.ListIndex, 1)
Sheets(SPTag).Range("H95").Value = CB_Sp8.List(CB_Sp8.ListIndex, 2)
ActiveWorkbook.Save
End Sub

Private Sub OKBut_Click()
Unload Me
End Sub




Habe nun aber das Problem das das füllen mit den Standardwerten als Änderung des Feldes erkannt wird und somit die Routine :"
Private Sub CB_Sp)1-8)_Change()"
in Aktion tritt und meine Werte überschreibt,
Diese Routinen "
Private Sub CB_Sp(1-8)_Change()" sollten aber nur aktiv werden wenn wirklich die ComboBox geändert wird (manuell).
Hat hierzu jemand eine Lösung ??

Danke
Peter


  


Betrifft: AW: User-Form ComboBoxen füllen ohne Änderung von: Petro
Geschrieben am: 01.09.2004 17:58:52

Danke,
hat sich erledigt.
Habe mal wieder zu umständlich gedacht, mit
Private Sub CB_Sp(1-8)_Click()"
geht's.

Peter