Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listbox einlesen und Tabelle ergänzen - Teil 2

Listbox einlesen und Tabelle ergänzen - Teil 2
11.05.2006 11:17:05
Kira
Hallo,
möchte mich erst einmal noch im Nachhinein bei Peter Feustel für den geposteten Code bedanken, funktioniert super!
Allerdings habe ich ein Problem festgestellt. Mit dem Code kann ich die Werte, die ich in die Textbox eingebe, so oft in die Listbox und Tabelle einfügen wie ich möchte. In der Listbox erscheint der Wert jedoch nur einmal (was auch so sein soll), in der Tabelle dagegen erscheint er dann mehrmals. Dort soll er jedoch auch nur einmal aufgeführt werden.
Bei der Auswahl eines Listboxeintrags (der gleichzeitig in der Textbox erscheint) lasse ich mittlerweile den Button, über den Werte hinzufügt werden, sperren. Allerdings weiß ich nicht, wie ich an die Sache herangehen soll, wenn ich etwas in die Textbox eintrage. Gibt es da irgendeine Möglichkeit, wie ich den Inhalt der Textbox mit den Einträgen der Listbox auf Übereinstimmung prüfen und dementsprechend das Hinzufügen dieses Textboxinhalts sperren kann?
Sinn der ganzen Sache ist der, dass die Tabelleninhalte zu einer Gültigkeitsliste gehören und die darf eben keine doppelte, dreifache etc. Werte enthalten.
Folgenden Code habe ich bisher:
Public sSpalte As String

Private Sub CommandButton2_Click()
Dim WkSh    As Worksheet
Dim lZeile  As Long
sSpalte = [F30]
Set WkSh = Worksheets("Benutzerangaben")
If Me.TextBox25.Value <> "" Then
lZeile = WkSh.Range(sSpalte & "65536").End(xlUp).Row
Range(sSpalte & lZeile + 1).Value = Me.TextBox25.Value
UserForm1.ListBox1.Clear
For lZeile = 2 To WkSh.Range(sSpalte & "65536").End(xlUp).Row
If WorksheetFunction.CountIf(WkSh.Range(sSpalte & "1:" & sSpalte & lZeile), _
WkSh.Range(sSpalte & lZeile)) = 1 Then _
ListBox1.AddItem WkSh.Range(sSpalte & lZeile)
Next lZeile
End If
CommandButton2.Enabled = False
End Sub


Private Sub CommandButton3_Click()
Dim WkSh    As Worksheet
Dim lZeile  As Long
Dim bGefu   As Boolean
sSpalte = [F30]
Set WkSh = Worksheets("Benutzerangaben")
If Me.TextBox25.Value <> "" Then
For lZeile = Range(sSpalte & "65536").End(xlUp).Row To 2 Step -1
If Me.TextBox25.Value = Range(sSpalte & lZeile).Value Then
bGefu = True
Exit For
End If
Next lZeile
End If
If bGefu = True Then
Range(sSpalte & lZeile).Delete Shift:=xlUp ' nur die Zelle löschen
'Rows(lZeile).Delete Shift:=xlUp            ' die ganze Zeile löschen
UserForm1.ListBox1.Clear
For lZeile = 2 To WkSh.Range(sSpalte & "65536").End(xlUp).Row
If WorksheetFunction.CountIf(WkSh.Range(sSpalte & "1:" & sSpalte & lZeile), _
WkSh.Range(sSpalte & lZeile)) = 1 Then _
ListBox1.AddItem WkSh.Range(sSpalte & lZeile)
Next lZeile
End If
CommandButton2.Enabled = True
End Sub


Private Sub ListBox1_Click()
Me.TextBox25.Value = UserForm1.ListBox1.List(Me.ListBox1.ListIndex, 0)
CommandButton2.Enabled = False
End Sub

End Sub

Private Sub TextBox25_Change()
If UserForm1.ListBox1.List(Me.ListBox1.ListIndex, 0) = Me.TextBox25.Value Then CommandButton2.Enabled = True
End Sub


Private Sub UserForm_Activate()
Dim WkSh    As Worksheet
Dim lZeile  As Long
If MultiPage1.Value = 2 Then [F30] = "N"
'If [F30] <> "" Then
sSpalte = [F30]
'End If
Set WkSh = Worksheets("Benutzerangaben")
For lZeile = 2 To WkSh.Range(sSpalte & "65536").End(xlUp).Row
If WorksheetFunction.CountIf(WkSh.Range(sSpalte & "1:" & sSpalte & lZeile), _
WkSh.Cells(lZeile, sSpalte)) = 1 Then _
ListBox1.AddItem WkSh.Cells(lZeile, sSpalte)
Next lZeile
End Sub

Gruß
Kira

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox einlesen und Tabelle ergänzen - Teil 2
11.05.2006 15:12:49
Peter
Hallo Kira,
das Eintragen von Doppelten in das Tabellenblatt sollte mit der geigefügten Mappe nicht mehr vorkommen.
Wenn du noch Änderungen vorgenommen hast, musst du sie nachtragen oder meine Änderungen in deine Mappe übernehmen. Meine Änderungen stehen ausschließlich im Makro 'Private Sub CommandButton1_Click()'.
https://www.herber.de/bbs/user/33561.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige