PDA

Vollständige Version anzeigen : listbox. Fehler in code?


phobos
16.03.2009, 09:41
Hi,

ich hab hier einen Teile von meinem Code.
Eingaben in eine Inputbox sollen sowohl in eine Listbox als auch in eine Tabelle eingetragen werden.
Es wird vorab geprüft ob doppelte Einträge existieren. Falls nicht wird der neue Eintrag eingefügt.

Das funktioniert einwandfrei bis zu dem Zeitpunkt wo noch keine Eintrag gemacht wurde, also die Listbox und die Tabelle jungfräulich sind.

Ich komm einfach nicht drauf warum das so ist.
Hoffe jemand weiß warum. Hab mal den Code dran gehängt.

Private Sub cmdAddS_Click()
' Spieler in Spielliste einfügen
' Liste wird auf doppelte Einträge geprüft
' funktioniert

Dim t$, j, i

t = InputBox("Neuer Spieler", "Neuaufnahme")
j = 0
For i = 0 To lbS.ListCount - 1

If lbS.List(i) <> t Then
j = j + 1
Else
j = 0
MsgBox ("Spielername existiert schon! Bitte anderen Namen wählen.")
End If

If j = lbS.ListCount Then
lbS.AddItem t
Sheets("Spieler").Range("A" & lz("Spieler")) = t
Else
End If
Next i

EnableButtons
End Sub

mfg
phobos

pefeu
16.03.2009, 14:25
Hallo phobos,

so könnte es funktionieren:
<FONT FACE="Arial,FixedSys"Size=2>
<Blockquote>
<FONT COLOR=#0000FF>Option Explicit</FONT>

<FONT COLOR=#0000FF>Private Sub</FONT>&nbsp;cmdAddS_Click()
<FONT COLOR=#008000>'&nbsp;Spieler&nbsp;in&nbsp;Spielliste&nbsp;einf&uuml;gen</FONT>
<FONT COLOR=#008000>'&nbsp;Liste&nbsp;wird&nbsp;auf&nbsp;doppelte&nbsp;Eintr&auml;ge&nbsp;gepr&uuml;ft</FONT>
<FONT COLOR=#008000>'&nbsp;funktioniert</FONT>

<FONT COLOR=#0000FF>Dim</FONT>&nbsp;t$,&nbsp;j,&nbsp;i
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;lz&nbsp;&nbsp;<FONT COLOR=#0000FF>As Long</FONT>

&nbsp;&nbsp;&nbsp;t&nbsp;=&nbsp;InputBox("Neuer&nbsp;Spieler",&nbsp;"Neuaufnahme")

&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;t&nbsp;=&nbsp;""&nbsp;<FONT COLOR=#0000FF>Then Exit Sub</FONT>

&nbsp;&nbsp;&nbsp;j&nbsp;=&nbsp;0

&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;lbS.ListCount&nbsp;=&nbsp;0&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lbS.AddItem&nbsp;t
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lz&nbsp;=&nbsp;Sheets("Spieler").Cells(Rows.Count,&nbsp;1).End(xlUp).Row&nbsp;+&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sheets("Spieler").Range("A"&nbsp;&amp;&nbsp;lz)&nbsp;=&nbsp;t
&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Else</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>For</FONT>&nbsp;i&nbsp;=&nbsp;0&nbsp;<FONT COLOR=#0000FF>To</FONT>&nbsp;lbS.ListCount&nbsp;-&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;lbS.List(i)&nbsp;&lt;&gt;&nbsp;t&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;=&nbsp;j&nbsp;+&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Else</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;=&nbsp;0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox&nbsp;"Der&nbsp;Spielername&nbsp;existiert&nbsp;schon!"&nbsp;&amp;&nbsp;Chr(10)&nbsp;&amp;&nbsp;_
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Bitte&nbsp;einen&nbsp;anderen&nbsp;Namen&nbsp;w&auml;hlen.",&nbsp;_
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16,&nbsp;"&nbsp;&nbsp;&nbsp;Hinweis&nbsp;f&uuml;r&nbsp;"&nbsp;&amp;&nbsp;Application.UserName
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End If</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;j&nbsp;=&nbsp;lbS.ListCount&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lbS.AddItem&nbsp;t
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lz&nbsp;=&nbsp;Sheets("Spieler").Cells(Rows.Count,&nbsp;1).End(xlUp).Row&nbsp;+&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sheets("Spieler").Range("A"&nbsp;&amp;&nbsp;lz)&nbsp;=&nbsp;t
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Else</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End If</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Next</FONT>&nbsp;i
&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End If</FONT>

&nbsp;&nbsp;&nbsp;<FONT COLOR=#008000>'EnableButtons</FONT>

<FONT COLOR=#0000FF>End Sub</FONT>&nbsp;

</Blockquote>
<FONT FACE="Courier New,FixedSys"Size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Code eingefügt mit <b><a href="http://rtsoftwaredevelopment.de" target="_blank">Syntaxhighlighter 4.4</a></b></FONT>
<FONT FACE="Arial,FixedSys"Size=2>
Gruß Peter

phobos
16.03.2009, 14:56
HEy Peter!

sieht gut aus klappt soweit. Danke dir!

das mit If lbS.ListCount = 0 Then
hab ich auch schon versucht. allerdings nicht ausserhalb meiner Schleife, sondern innerhalb. Da hat es nicht funktioniert. Jetzt schon:)

mercí

mfg
phobos