Ich versuche mich gerade an einer Listbox, welche alle Daten mit einem Sheet abgleicht.
Ich habe eine Userform, mit verschiedenen TextBoxen. Sobald ich auf einen Eintrag gehe, wird der Inhalt der Zeile in der Listbox in den Textboxen angezeigt und ich kann den Eintrag hierüber bearbeiten. Nun wäre es aber toll, wenn ich ohne eine Zeile in der Listbox auszuwählen neue Einträge hinzufügen kann. Also eine Art Add Button. Also eine Funktion, die nach Eingabe der Daten in die nächste Zeile der Listbox springt würde ausreichen.
Hier mal mein kompletter Code.
'Nachfolgender Sub fügt Haltestellen hinzu und schreibt die Daten in die Textfelder
Private Sub CmdHaltestellenInputManuellDaltenHinzufuegen_Click()
'Haltestellen.Worksheets("Tabelle1").Select
With Me.LiHaltestellenInputManuellListe
.ColumnCount = 8
.RowSource = Workbooks("Haltestellen.xlsx").Worksheets("Tabelle1").Range("A2:H30").Address( _
_
_
True, True, xlA1, True) '.RowSource = "'[Haltestellen.xls]Tabelle1'!a1:h30"
.ColumnHeads = True
End With
Des Weiteren, habe ich in der Eingabemaske zu den TextBoxen noch 2 Checkboxen. Ich würde gerne _
_
_
das Feld je nach aktivierter TextBox mit verschiedenen Zahlen füllen.
Dabei habe ich an eine Schleife gedacht. Aber dies funktioniert nicht, bekomme die ganze Zeit _
_
_
Laufzeitfehler 70.
'Nachfolgender Text macht die Liste bearbeitbar
Private Sub CmdHaltestellenInputManuellListeBearbeiten_Click()
With Range("Tabelle1!A2:H30")
Me.Tag = "1"
.Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 1).Value = _
TxtHaltestellenInputManuellDatenNr1.Value
.Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 2).Value = _
TxtHaltestellenInputManuellDatenName1.Value
.Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 3).Value = _
TxtHaltestellenInputManuellDatenId1.Value
.Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 4).Value = _
TxtHaltestellenInputManuellDatenLat1.Value
.Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 5).Value = _
TxtHaltestellenInputManuellDatenLong1.Value
.Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 6).Value = _
TxtHaltestellenInputManuellDatenHoehe1.Value
.Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 7).Value = _
TxtHaltestellenInputManuellDatenKurs1.Value
Me.Tag = ""
End With
Me.Tag = "1"
If Range("Tabelle1!A2:H30").Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 8).Value = "1" _
_
_
Then
ChHaltestellenInputManuellDatenEwE1.Value = True
ElseIf Range("Tabelle1!A2:H30").Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 8).Value = _
_
_
"2" Then
ChHaltestellenInputManuellDatenEwW1.Value = True
ElseIf Range("Tabelle1!A2:H30").Cells(LiHaltestellenInputManuellListe.ListIndex + 1, 8).Value = _
_
_
"0" Then
ChHaltestellenInputManuellDatenEwE1.Value = False
ChHaltestellenInputManuellDatenEwW1.Value = False
End If
Me.Tag = ""
End Sub
'Ab hier kann man in der Liste Einträge markieren, diese werden dann vom oberen Code bearbeitet pre>
Private Sub LiHaltestellenInputManuellListe_Click()
If Me.Tag = "1" Then Exit Sub
'klick = ListBox1.ListIndex
With LiHaltestellenInputManuellListe
HaltestellenInputManuell.TxtHaltestellenInputManuellDatenNr1 = .List(.ListIndex, 0)
HaltestellenInputManuell.TxtHaltestellenInputManuellDatenName1 = .List(.ListIndex, 1)
HaltestellenInputManuell.TxtHaltestellenInputManuellDatenId1 = .List(.ListIndex, 2)
HaltestellenInputManuell.TxtHaltestellenInputManuellDatenLat1 = .List(.ListIndex, 3)
HaltestellenInputManuell.TxtHaltestellenInputManuellDatenLong1 = .List(.ListIndex, 4)
HaltestellenInputManuell.TxtHaltestellenInputManuellDatenHoehe1 = .List(.ListIndex, 5)
HaltestellenInputManuell.TxtHaltestellenInputManuellDatenKurs1 = .List(.ListIndex, 6)
End With
If HaltestellenInputManuell.ChHaltestellenInputManuellDatenEwE1 = True Then
LiHaltestellenInputManuellListe.List(LiHaltestellenInputManuellListe.ListIndex, 7) = _
_
"1"
ElseIf HaltestellenInputManuell.ChHaltestellenInputManuellDatenEwW1 = True Then
LiHaltestellenInputManuellListe.List(LiHaltestellenInputManuellListe.ListIndex, 7) = _
_
"2"
Else
LiHaltestellenInputManuellListe.List(LiHaltestellenInputManuellListe.ListIndex, 7) = _
_
"0"
End If
End Sub
Also funktioniert bis auf die Checkboxen ganz gut. Ich hoffe, das ist nicht zu viel auf einmal. Bedanke mich aber bei allen Vorschlägen jetzt schon.
Viele Grüße
Rüdi