PDA

Vollständige Version anzeigen : comboBox verwenden


Hammer
09.03.2009, 22:59
Hallo liebe User,

ich versuche eine userform mit einer ComboBox zu erstellen.
Habe aber davon keinen Schimmer :confused:

Das habe ich schon mal:

Private Sub CommandButton1_Click()
z = Range("A1").End(xlDown).Row + 1
If z > 65000 Then z = 2
Cells(z, 1) = TextBox1
Cells(z, 2) = TextBox2
Cells(z, 3) = ComboBox1
Cells(z, 4) = TextBox4
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

Private Sub ComboBox1_Change()
ComboBox1.DropDown
End Sub

Private Sub UserForm_Initialize()
ComboBox1.AddItem "XXX"
ComboBox1.AddItem "Chicken"
ComboBox1.AddItem "Duck"
ComboBox1.AddItem "Goose"
ComboBox1.AddItem "Grouse"
End Sub



Meine Frage:
Ich möchte die Begriffe ("XXX,Chicken,...") nicht fest im Code stehen haben, sondern aus einer Liste im Tabellenblatt1 A1:A15 nehmen.
Was muß da alles geändert werden.

Schonmal DANKE!

jinx
10.03.2009, 03:44
Moin, Hammer,

Private Sub CommandButton1_Click()
Dim z
With Sheets("Tabelle2")
z = .Range("A1").End(xlDown).Row + 1
If z > 65000 Then z = 2
.Cells(z, 1) = TextBox1
.Cells(z, 2) = TextBox2
.Cells(z, 3) = ComboBox1
.Cells(z, 4) = TextBox4
End With
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

'Private Sub ComboBox1_Change()
' ComboBox1.DropDown
'End Sub

Private Sub UserForm_Initialize()
Dim bytZähler As Byte
For bytZähler = 1 To 15
ComboBox1.AddItem Sheets("Tabelle1").Cells(bytZähler, 1).Value
Next bytZähler
End Sub

Hammer
10.03.2009, 07:12
Moin jinx,

vielen Dank erstmal für´s antworten!

Was ist, wenn ich den Text in Tabelle2 erst ab Zelle A9 eintragen lassen möchte, aber A1:A8 trotzdem leer sind. Einfach im Code aus der "A1" eine "A9" machen reicht da irgendwie nicht aus, da schreibt er es dann in die A2.
Und er springt auch nicht beim nächsten Eintrag in die nächste Zeile.
Da stehen auch noch die letzten Einträge in der ComboBox -werden gar nicht gelöscht??!!

MACHE ICH WAS FALSCH???:entsetzt:

hary
10.03.2009, 08:36
Hi Hammer
versuch diesen Code mal fuer den Button.
<pre>
Private Sub CommandButton1_Click()
Dim z
With Sheets("Tabelle2")
z = Cells(Rows.Count, 1).End(xlUp).Row + 1
If z <= 9 Then
.Cells(9, 1) = TextBox1
.Cells(9, 2) = TextBox2
.Cells(9, 3) = ComboBox1
.Cells(9, 4) = TextBox4
Else
.Cells(z, 1) = TextBox1
.Cells(z, 2) = TextBox2
.Cells(z, 3) = ComboBox1
.Cells(z, 4) = TextBox4
End If
End With
End Sub
</pre>
Hilfts weiter ?
Gruss hary

Hammer
10.03.2009, 09:14
...Super, funzt erstmal ganz gut.

Wenn nochmal Fragen auftreten, melde ich mich sowieso ;)

DANKE!!!:hands:

Hammer
11.03.2009, 20:31
Hallo,

muß mich doch nochmal bezugnehmend auf die ComboBox melden.
Ich möchte jetzt zwei davon in die userForm einbauen.
Die Zweite soll aber von der Auswahl der Ersten abhängig sein.
GEHT SO ETWAS???

D.h. der Bezug zu welcher Liste die zweite Box zugreift, soll von der Auswahl der ersten Box abhängig sein.

Also ich habe da mal was angefangen.....:redface:

Private Sub CommandButton1_Click()
Dim z
With Sheets("Datenbank1")
z = Cells(Rows.Count, 1).End(xlUp).Row + 1
If z <= 9 Then
.Cells(9, 1) = TextBox1
.Cells(9, 2) = TextBox2
.Cells(9, 3) = ComboBox1
.Cells(9, 4) = ComboBox2
Else
.Cells(z, 1) = TextBox1
.Cells(z, 2) = TextBox2
.Cells(z, 3) = ComboBox1
.Cells(z, 4) = ComboBox2
End If
End With
End Sub

Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub

Private Sub UserForm_Initialize()
Dim bytZähler As Byte
For bytZähler = 12 To 72
ComboBox1.AddItem Sheets("Liga").Cells(bytZähler, 9).Value
Next bytZähler
End Sub

Private Sub UserForm_Initialize()

Dim lngRow As Long
Dim bytZähler As Byte

lngRow = Application.WorksheetFunction _
.Match(Range(ComboBox1).Value, Worksheets("Teams_Spieler").Range("G11:G1500"), 0)
For bytZähler = 15 To 245
ComboBox2.AddItem Sheets("Teams_Spieler").Cells(lngRow, bytZähler).Value
Next bytZähler
End Sub

...funzt schon mal nicht, da 2x der "Private Sub UserForm_Initialize()"
drin steht. Wie sonst..???

Schon mal Tausend Dank im Voraus für jede Hilfe!!!

jinx
11.03.2009, 20:46
Mon, Hammer,

es kann nur eine Prozedur des Namens geben - also müssen entweder die Maßnahmen hintereinander aufgeführt werden oder aber durch die Auswahl des ersten Elementes nachgeladen werden (dann sollte die zweite CB bis zu einer Wahl in der ersten CB unsichtbar sein). Verständlich?

Private Sub UserForm_Initialize()

Dim lngRow As Long
Dim bytZähler As Byte

For bytZähler = 12 To 72
ComboBox1.AddItem Sheets("Liga").Cells(bytZähler, 9).Value
Next bytZähler

lngRow = Application.WorksheetFunction _
.Match(Range(ComboBox1).Value, Worksheets("Teams_Spieler").Range("G11:G1500"), 0)

For bytZähler = 15 To 245
ComboBox2.AddItem Sheets("Teams_Spieler").Cells(lngRow, bytZähler).Value
Next bytZähler

End Sub

Hammer
11.03.2009, 21:04
Guten Abend jinx,

erstmal Danke für´s schnelle antworten!!

Wie du das meinst verstehe ich schon, aber leider habert es an jeglicher Umsetzung.
Habe jetzt deinen Entwurf eingefügt und ausgeführt - leider zeigt es mir da einen Fehler an. :
"die Methode Range für das Objekt Global ist fehlgeschlagen" :confused:

jinx
11.03.2009, 21:14
Moin, Hammer,

das dürfte wohl eher an mir liegen - die CB1 hat zu dem Zeitpunkt, wo die CB2 mit dem Code gefüllt werden soll, noch keinen Wert/keine Auswahl - entweder belegst Du die CB1 vor

For bytZähler = 12 To 72
ComboBox1.AddItem Sheets("Liga").Cells(bytZähler, 9).Value
Next bytZähler
ComboBox1.ListIndex = 0

wählt den ersten Eintrag der Liste aus und füllt dann die zweite CB analog.

ODer Du blendest die zweite CB solange aus, bis eine Auswahl in der ersten CB vorgenommen wurde, und bindest an das Change-Ereignis der ersten CB1 Sichtbarkeit CB2 und deren Befüllung mit Werten an (wenn diese sich in Abhängigkeit von CB1 unterscheiden).

Hammer
11.03.2009, 21:25
....du hast gut Reden...;)

...für mich sind das wirklich alles fremde Dörfer ....

ODer Du blendest die zweite CB solange aus, bis eine Auswahl in der ersten CB vorgenommen wurde, und bindest an das Change-Ereignis der ersten CB1 Sichtbarkeit CB2 und deren Befüllung mit Werten an (wenn diese sich in Abhängigkeit von CB1 unterscheiden).
11.03.2009 22:04


Kannst du das so erstellen wie du es meinst...???
..kannst du das mit den Daten die schon da sind machen, oder fehlen da noch Angaben?

jinx
12.03.2009, 04:58
Moin, Hammer,

siehe Anhang, den Du auf Deine Angaben anpassen musst. Verwendeter Code für die Steuerelemente (2x CB, 1x Schalter) in der UserForm:

Private Sub cmbSpieler_Enter()
Dim lngRow As Long
Dim bytZähler As Byte

cmbSpieler.Clear
With Sheets("Teams_Spieler")
lngRow = Cells(Rows.Count, cmbVerein.ListIndex + 1).End(xlUp).Row
For bytZähler = 2 To lngRow
cmbSpieler.AddItem .Cells(bytZähler, cmbVerein.ListIndex + 1).Value
Next bytZähler
End With

End Sub

Private Sub cmbVerein_Change()

If cmbVerein.ListIndex <> -1 Then cmbSpieler.Visible = True

End Sub

Private Sub cmdOK_Click()

Unload Me

End Sub

Private Sub UserForm_Initialize()

Dim lngRow As Long
Dim bytZähler As Byte

With Sheets("Liga")
For bytZähler = 1 To 16
cmbVerein.AddItem .Cells(bytZähler, 1).Value
Next bytZähler
End With
cmbSpieler.Visible = False

End Sub

Hammer
12.03.2009, 06:43
Moin jinx,

das sieht echt gut aus, vielen Dank.:top:
Ich werde es erstmal auf meine Bedürfnisse anpassen (wenn ich das hinbekomme).Da bei mir die Vereine (bei mir Liga) im Sheet "Teams_Spieler" in Spalte G stehen ( in Abständen von ca. 20 Zeilen) und die Spieler (bei mir Teams) dann in der entsprechenden Zeile zu dem dazugehörigem Verein. Na mal schauen...;)

Ich melde mich danach nochmal.

jinx
12.03.2009, 06:53
Moin, Hammer,

deklariere dann bitte sicherheitshalber die Zähler als Long (statt Byte).

Hammer
12.03.2009, 23:05
Moin, jinx,

ich kann glaube noch Stunden davor sitzen, aber leider bekomme ich es nicht hin den Code selbst umzubasteln.
Leider kann ich die Orig. Datei nicht anhängen da sie zu groß ist. Ich versuche es mal mit einer abgespeckten Version.

Um nochmal dazu zu kommen was ich eigentlich vor hatte.:

Wenn mann einen neuen Spieler einpflegen möchte, soll durch das UserForm die Abfrage zum Namen, Männlein o. Weiblein ;) , Liga und schliesslich Team-
Name erfolgen.
Wenn daraufhin der Button "Daten eintragen" gedrückt wird, soll der Name bei der entsprechenden Liga und dem Team (beides im Sheet "Teams_Spieler") mit hinzugefügt werden. (in die erste freie Zeile des Teams). Das heißt bis hierhin sind die Angaben zum Team und der Liga nur dazu da, damit der Code die Stelle findet wo der Name eingefügt werden soll.
Danach sollen Name, Liga & Team noch in die Datenbank1(Sheet) eingefügt werden.
jinx, kannst du mir hierbei bitte behilflich sein?? ....:hands:

Klingt ja evt. einfach, aber nur für den der sowas kann.(...gelernt hat :grins: )

jinx
13.03.2009, 04:42
Moin, Hammer,

Private Sub cmbTeam_Exit(ByVal Cancel As MSForms.ReturnBoolean)

cmbTeam.Visible = False

End Sub

Private Sub CommandButton1_Click()
Dim z
With Sheets("Datenbank1")
z = Cells(Rows.Count, 1).End(xlUp).Row + 1
If z <= 9 Then
.Cells(9, 1) = TextBox1
.Cells(9, 2) = TextBox2
.Cells(9, 3) = cmbLiga
.Cells(9, 4) = cmbTeam
Else
.Cells(z, 1) = TextBox1
.Cells(z, 2) = TextBox2
.Cells(z, 3) = cmbLiga
.Cells(z, 4) = cmbTeam
End If
End With
End Sub

Private Sub CommandButton2_Click()

UserForm1.Hide

End Sub


Private Sub cmbTeam_Enter()

Dim lngRow As Long
Dim lngZähler As Long

cmbTeam.Clear
With Sheets("Teams_Spieler")
lngRow = 12 + cmbLiga.ListIndex * 21

For lngZähler = 15 To 245 Step 10
cmbTeam.AddItem .Cells(lngRow, lngZähler).Value
Next lngZähler
End With

End Sub

Private Sub cmbLiga_Change()

If cmbLiga.ListIndex <> -1 Then cmbTeam.Visible = True

End Sub

Private Sub UserForm_Initialize()

Dim lngRow As Long
Dim lngZähler As Long

With Sheets("Liga")
For lngZähler = 12 To .Cells(Rows.Count, "I").End(xlUp).Row
cmbLiga.AddItem .Cells(lngZähler, "I").Value
Next lngZähler
End With

cmbTeam.Visible = False

With ComboBox1
.AddItem "männlich"
.AddItem "weiblich"
End With

End Sub

Hammer
13.03.2009, 06:39
Hallo jinx,

....bei diesen Code passiert beim Ausführung des CommandButton1
NICHTS, außer das die CmbTeam wieder verschwindet..:confused: aber Daten in irgend welche Felder übernehmen machts es noch nicht.:(

Aber die Auswahl von den Ligen und Teams in den Cmb Feldern funzt schon mal genau richtig!!! :) :) :) Super!!! :top:

Ich Danke dir sehr für jegliche Bemühungen!!!:hands:

jinx
13.03.2009, 14:46
Moin, Hammer,

den Aufruf des Codes zum Einfüllen der Daten habe ich mir auch nicht angesehen und eingebaut, das kann ich aber gerne noch nachholen - obwohl: das schaffst Du doch auch alleine, oder? ;) Wenn nicht, bitte Info.

Hammer
13.03.2009, 15:57
Hallo jinx,

O.K. ich versuche es gerne mal alleine...
was mich aber wundert ist, dass der Code zum einfüllen ja schonmal funktioniert hatte: (siehe Beitrag 1202073)

..seit dem haben wir ja nur die Codes der Cmb´s geändert, also schlussfolgere ich, dass dadurch der CommandButton1 seinen "Job" nicht mehr richtig machen will (oder kann;) ).

jinx
13.03.2009, 16:23
Moin, Hammer,

meiner Meinung nach fehlt in der Prozedur nur ein Punkt:

z = .Cells(Rows.Count, 1).End(xlUp).Row + 1

Hammer
14.03.2009, 16:51
Moin jinx,

...ich glaube es liegt hier nicht nur an dem Punkt....

habe jetzt den Code zum Einfüllen der Daten angefangen so zu ändern,
dass es langsam in die Richtung geht in die es soll....aber da fehlt noch eine Menge.:(

Aber schaue ihn Dir mal an, weil er geht natürlich noch nicht....
das Ziel ist nach wie vor:
.......... .
Wenn daraufhin der Button "Daten eintragen" gedrückt wird, soll der Name bei der entsprechenden Liga und dem Team (beides im Sheet "Teams_Spieler") mit hinzugefügt werden. (in die erste freie Zeile des Teams). Das heißt bis hierhin sind die Angaben zum Team und der Liga nur dazu da, damit der Code die Stelle findet wo der Name eingefügt werden soll.
Danach sollen Name, Liga & Team noch in die Datenbank1(Sheet) eingefügt werden.


Private Sub CommandButton1_Click()
Dim lngRow As Long
Dim lngCoul As Long


With Sheets("Teams_Spieler")
lngRow = 12 + cmbLiga.ListIndex * 21
lngCoul = Application.WorksheetFunction _
.Match(cmbTeam.Value, Worksheets("Teams_Spieler").Rows(lngRow), 0)
.Cells(lngRow + 2, lngCoul) = TextBox1
End With
End Sub

:confused: :confused: :confused:

jinx
14.03.2009, 19:26
Moin, Hammer,

so könnte es funktionieren (das Schreiben in die Datenbank habe ich nicht geprüft/verändert):

Private Sub CommandButton1_Click()
Dim z As Long
Dim lngSpalte As Long
Dim lngZeile As Long
Dim lngAnzahl As Long
Const clngMAX_ANZ As Long = 16

With Sheets("Teams_Spieler")
lngSpalte = 17 + cmbTeam.ListIndex * 10
lngZeile = 14 + cmbLiga.ListIndex * 21
lngAnzahl = WorksheetFunction.CountA(.Range(.Cells(lngZeile, lngSpalte), .Cells(lngZeile + clngMAX_ANZ - 1, lngSpalte)))
If lngAnzahl = clngMAX_ANZ Then
MsgBox "Datenbereich voll, kein Eintrag mehr möglich", vbCritical, "Hinweis"
Exit Sub
Else
.Cells(lngZeile + lngAnzahl, lngSpalte).Value = TextBox1.Text
.Cells(lngZeile + lngAnzahl, lngSpalte + 1).Value = TextBox2.Text
If ComboBox1.Text = "männlich" Then
.Cells(lngZeile + lngAnzahl, lngSpalte + 5).Value = "Herren"
Else
.Cells(lngZeile + lngAnzahl, lngSpalte + 5).Value = "Damen"
End If
End If
End With

With Sheets("Datenbank1")
z = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If z <= 9 Then
.Cells(9, 1) = TextBox1
.Cells(9, 2) = TextBox2
.Cells(9, 3) = cmbLiga
.Cells(9, 4) = cmbTeam
Else
.Cells(z, 1) = TextBox1
.Cells(z, 2) = TextBox2
.Cells(z, 3) = cmbLiga
.Cells(z, 4) = cmbTeam
End If
End With

TextBox1.Text = vbNullString
TextBox2.Text = vbNullString

End Sub
Die maximale Anzahl für die Mannschaften ist hier als Konstante mit 16 vorgegeben und kann verändert werden - mehr als 16 Spieler würden einen anderen Aufbau der Tabelle erforderlich machen.

Hammer
14.03.2009, 22:21
Moin, jinx,

...das ist ja Klasse!!!:D :top:

Es funktioniert genau richtig, ich würde sagen das ist der HAMMER ;)

Nur noch die Bitte, kann man es so "benutzerfreundlich" gestalten, dass wenn die Eingaben (Name, Vorname, .....) nicht vollständig sind dann nicht der Debugg Modus kommt, sondern nur der Hinweis das die entsprechende Eingabe fehlt??!!

Achso, wie kann das sein, in der Test Datei (dein Anhang) funktioniert das einfüllen der Daten in das Sheet "Datenbank1" wirklich richtig gut.
Ich habe den kompletten Code des UserForm in meine orig.Datei kopiert und da funktioniert die übergabe der Daten in das Sheet "Datenbank1" überhaup nicht. WORAN KANN DAS LIEGEN???

jinx
15.03.2009, 07:21
Moin, Hammer,

z.B. so:

Private Sub CommandButton1_Click()

Dim z As Long
Dim lngSpalte As Long
Dim lngZeile As Long
Dim lngAnzahl As Long
Const clngMAX_ANZ As Long = 16
Dim blnKomplett As Boolean

If Trim(TextBox1.Text) = "" Then blnKomplett = False
If Trim(TextBox2.Text) = "" Then blnKomplett = False
If ComboBox1.ListIndex = -1 Then blnKomplett = False
If cmbTeam.ListIndex = -1 Then blnKomplett = False
If cmbLiga.ListIndex = -1 Then blnKomplett = False
If blnKomplett = False Then
MsgBox "Bitte füllen Sie zuerst alle Felder aus.", vbInformation
Exit Sub
End If

With Sheets("Teams_Spieler")
lngSpalte = 17 + cmbTeam.ListIndex * 10
lngZeile = 14 + cmbLiga.ListIndex * 21
lngAnzahl = WorksheetFunction.CountA(.Range(.Cells(lngZeile, lngSpalte), .Cells(lngZeile + clngMAX_ANZ - 1, lngSpalte)))
If lngAnzahl = clngMAX_ANZ Then
MsgBox "Datenbereich voll, kein Eintrag mehr möglich", vbCritical, "Hinweis"
Exit Sub
Else
.Cells(lngZeile + lngAnzahl, lngSpalte).Value = TextBox1.Text
.Cells(lngZeile + lngAnzahl, lngSpalte + 1).Value = TextBox2.Text
If ComboBox1.Text = "männlich" Then
.Cells(lngZeile + lngAnzahl, lngSpalte + 5).Value = "Herren"
Else
.Cells(lngZeile + lngAnzahl, lngSpalte + 5).Value = "Damen"
End If
End If
End With

With Sheets("Datenbank1")
z = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If z <= 9 Then
.Cells(9, 1) = TextBox1
.Cells(9, 2) = TextBox2
.Cells(9, 3) = cmbLiga
.Cells(9, 4) = cmbTeam
Else
.Cells(z, 1) = TextBox1
.Cells(z, 2) = TextBox2
.Cells(z, 3) = cmbLiga
.Cells(z, 4) = cmbTeam
End If
End With

TextBox1.Text = vbNullString
TextBox2.Text = vbNullString

End Sub
Zur zweiten Frage: kann ich aufgrund der gegebenen Informationen nicht beantworten - vielleicht ist ein Blattschutz gesetzt? Da müsste ich schon einen Blick auf die Mappe werfen oder weitergehende Angaben erhalten (ggf. Fehlermeldung oder was genau dort nicht "funktioniert").

Hammer
15.03.2009, 10:30
Moin jinx,

...die MsgBox "Bitte füllen Sie zuerst alle Felder aus." zeigt es JEDESMAL an.
....auch bei voll ausgefüllten Feldern. Was kann da sein???

Hier nochmal der akt. kompl. Code:



Option Explicit


Private Sub CommandButton1_Click()
Dim z As Long
Dim lngSpalte As Long
Dim lngZeile As Long
Dim lngAnzahl As Long
Const clngMAX_ANZ As Long = 16
Dim blnKomplett As Boolean

If Trim(TextBox1.Text) = "" Then blnKomplett = False
If Trim(TextBox2.Text) = "" Then blnKomplett = False
If ComboBox1.ListIndex = -1 Then blnKomplett = False
If cmbTeam.ListIndex = -1 Then blnKomplett = False
If cmbLiga.ListIndex = -1 Then blnKomplett = False
If blnKomplett = False Then
MsgBox "Bitte füllen Sie zuerst alle Felder aus.", vbInformation
Exit Sub
End If

With Sheets("Teams_Spieler")
lngSpalte = 17 + cmbTeam.ListIndex * 10
lngZeile = 14 + cmbLiga.ListIndex * 21
lngAnzahl = WorksheetFunction.CountA(.Range(.Cells(lngZeile, lngSpalte), .Cells(lngZeile + clngMAX_ANZ - 1, lngSpalte)))
If lngAnzahl = clngMAX_ANZ Then
MsgBox "Datenbereich voll, kein Eintrag mehr möglich", vbCritical, "Hinweis"
ComboBox1.Text = vbNullString
TextBox1.Text = vbNullString
TextBox2.Text = vbNullString
cmbLiga = vbNullString
cmbTeam = vbNullString
UserForm1.Hide
Exit Sub
Else
.Cells(lngZeile + lngAnzahl, lngSpalte).Value = TextBox1.Text
.Cells(lngZeile + lngAnzahl, lngSpalte + 1).Value = TextBox2.Text
If ComboBox1.Text = "Herren" Then
.Cells(lngZeile + lngAnzahl, lngSpalte + 5).Value = "Herren"
Else
.Cells(lngZeile + lngAnzahl, lngSpalte + 5).Value = "Damen"
End If
End If
End With

With Sheets("Datenbank1")
z = .Cells(Rows.Count, 1).End(xlUp).Row + 1
If z <= 9 Then
.Cells(9, 1) = TextBox1
.Cells(9, 2) = TextBox2
.Cells(9, 3) = cmbLiga
.Cells(9, 4) = cmbTeam
Else
.Cells(z, 1) = TextBox1
.Cells(z, 2) = TextBox2
.Cells(z, 3) = cmbLiga
.Cells(z, 4) = cmbTeam
End If
End With
ComboBox1.Text = vbNullString
TextBox1.Text = vbNullString
TextBox2.Text = vbNullString
cmbLiga = vbNullString
cmbTeam = vbNullString


End Sub

Private Sub CommandButton2_Click()
ComboBox1.Text = vbNullString
TextBox1.Text = vbNullString
TextBox2.Text = vbNullString
cmbLiga = vbNullString
cmbTeam = vbNullString
cmbTeam.Visible = False
UserForm1.Hide

End Sub


Private Sub cmbTeam_Enter()

Dim lngRow As Long
Dim lngZähler As Long

cmbTeam.Clear
With Sheets("Teams_Spieler")
lngRow = 12 + cmbLiga.ListIndex * 21

For lngZähler = 15 To 245 Step 10
cmbTeam.AddItem .Cells(lngRow, lngZähler).Value
Next lngZähler
End With

End Sub

Private Sub cmbLiga_Change()

If cmbLiga.ListIndex <> -1 Then cmbTeam.Visible = True

End Sub

Private Sub UserForm_Initialize()

Dim lngRow As Long
Dim lngZähler As Long

With Sheets("Liga")
For lngZähler = 12 To .Cells(Rows.Count, "I").End(xlUp).Row
cmbLiga.AddItem .Cells(lngZähler, "I").Value
Next lngZähler
End With

cmbTeam.Visible = False

With ComboBox1
.AddItem "Herren"
.AddItem "Damen"
End With

End Sub





PS:...der Eintrag in die Datenbank funktioniert jetzt auch, habe ein neues Sheet "Datenbank1" angelegt...:grins:

jinx
15.03.2009, 10:35
Moin, Marco,

folgende Zeile über den Prüfungen einfügen:

blnKomplett = True
If Trim(TextBox1.Text) = "" Then blnKomplett = False
'...

Hammer
15.03.2009, 10:58
....so, du hast es geschafft, es funktioniert alles. :five: :mrcool:
Ich bin mit diesem Thema erstmal am Ende ;)

Vielen Tausend DANK

für deine andauernde Hilfe.
Dadurch verliert man nicht die Lust, sich an verschiedenen Projekten
zu probieren. :top:

jinx, MACHE WEITER SO!!! :hands:

UND EIN SCHÖNES WOCHENENDE NOCH!!!:sun: