Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
244to248
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
244to248
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zwei Listen in einem Userform

Zwei Listen in einem Userform
20.04.2003 15:43:57
rainer
Hallo Leute,

ich habe in einem Userform zwei Listen, die durch folgenden Code gefüllt werden:

Private Sub UserForm_Initialize()
Dim wkscol As Worksheet, wksrow As Worksheet

''''''''''''''''''''''''''''''''''''''''''''''''''''
' Location for Merkmale
Set wkscol = ThisWorkbook.Sheets("MerkmaleCol")
Set wksrow = ThisWorkbook.Sheets("MerkmaleRow")

''''''''''''''''''''''''''''''''''''''''''''''''''''

lstMerkmaleCol.List = wkscol.Range("A1").CurrentRegion.Columns("A:B").Value
lstMerkmaleRow.List = wksrow.Range("A1").CurrentRegion.Columns("A:B").Value
End Sub

In einem Listenfeld kann jeweils immer nur ein Eintrag mit einem Doppelklick markiert werden. Unterhalb der Listenfelder gibt es zwei Textboxes. Wenn ein Eintag in einer der zwei Listen markiert wird, erscheinen dort die Werte und können nun verändert werden über eine Schaltfläche speichern:

Private Sub cmdSpeichern_Click()
Dim wkscol As Worksheet, wksrow As Worksheet

''''''''''''''''''''''''''''''''''''''''''''''''''''
' Location for Merkmale
Set wkscol = ThisWorkbook.Sheets("MerkmaleCol")
Set wksrow = ThisWorkbook.Sheets("MerkmaleRow")

''''''''''''''''''''''''''''''''''''''''''''''''''''

If txtMerkmal.text = "" And txtWert.text = "" Then
Beep
MsgBox "Sie müssen ein Merkmal mit Doppelklick auswählen!"
Exit Sub
Else
If txtMerkmal.text = "" Or txtWert.text = "" Then
Beep
MsgBox "Sie müssen einen Wert eingeben!"
Exit Sub
End If
End If
With lstMerkmaleCol
.List(.ListIndex, 0) = txtMerkmal.text
.List(.ListIndex, 1) = txtWert.text
wkscol.Range("A1").CurrentRegion.Columns("A:B").Value = lstMerkmaleCol.List
End With
With lstMerkmaleRow
.List(.ListIndex, 0) = txtMerkmal.text
.List(.ListIndex, 1) = txtWert.text
wksrow.Range("A1").CurrentRegion.Columns("A:B").Value = lstMerkmaleRow.List
End With
End Sub

ich habe nun 2. Probleme:
1. Problem: Wie kann ich es hinkriegen, dass bei auswahl eines Eintrages in Liste1 (lstMerkmaleCol) durch den Anwender und anschließender auswahl eines Eintrages in Liste2 (lstMerkmaleRow)durch den Anwender kein Eintag in Liste1 mehr markiert ist. Momentan ist bei mir dann in beiden Listen jeweils ein Eintrag markiert und das möchte ich vermeiden.

2. Problem: Wie kann ich feststellen beim Klicken der schaltfläche speichern, welcher Eintrag, der gerade barbeitet wurde, in welche Liste gehört.

Wer kann mir helfen und vielleicht ein Besipiel sagen?

Gruß
Rainer


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zwei Listen in einem Userform
20.04.2003 17:27:53
andre

hallo reiner,
zu 1. bei click die selected-eigenschaft in der anderen listbox auf false setzen
z.b.
Private Sub ListBox2_Click()
For i = 0 To 4
If ListBox1.Selected(i) = True Then
MsgBox i
ListBox1.Selected(i) = False
End If
Next
End Sub
zu 2.
ich nehme mal an das die erste textbox zur ersten liste gehört und die zweite zur zweiten.
ansonsten setze eine globale variable, meinetwegen listclick. diese tust du bei listbox1 auf 1 und listbox2 auf 2 setzen und so kannst du die dann auswerten.
gruss andre

Anzeige

222 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige