Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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
Inhaltsverzeichnis

Listindex speichern - an derselben Stelle einfügen

Listindex speichern - an derselben Stelle einfügen
29.09.2013 12:51:54
Steffen
Servus zusammen,
ich habe eine Aufgabenstellung über die ich mir seit einiger Zeit den Kopf zerbreche
Ich fülle eine Listbox mit .additem... Per Klick auf einen Button kann ich nun einzelne, vorher angeklickte Einträge dieser Listbox, herausnehmen und in eine andere Listbox eintragen. Soweit so gut. Wiederum per Klick kann ich nun Einträge aus dieser zweiten Listbox wieder in die Erste einfügen.
Ich möchte nun, dass die wieder hinzugefügten Einträge an dergleichen Stelle, wie vorher auftauchen und nicht am Ende der Liste. Gibt es da irgendeine Möglichkeit? Stelle mir da irgendeine Variable vor, die den Listindex speichert....
VG Steffen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listindex speichern
29.09.2013 13:45:29
Hajo_Zi
Hallo Steffen,
Benutze eine ausgeblendete Spalte in der Listbox, in die Du den Listindex einträgst.

AW: Listindex speichern
29.09.2013 14:54:44
Steffen
Hallo Hajo,
danke für die schnelle Antwort.
ich habe die Listbox nun entsprechend angepasst. Sie hat nun zwei Spalten. Zweite Spalte mit aufsteigenden Zahlen zum Festlegen der Rangfolge.
Hast Du den Befehl für das Ausblenden der zweiten Spalte?
Vielen Herzlichen Dank!
Steffen

AW: Listindex speichern
29.09.2013 15:03:05
Hajo_Zi
Hallo Steffen,
einfach bei Eigenschaften angeben das die zweite Spalte Spaltenbreite 0 hat. Warum die aufsteigenden Zahlen ist mir nicht klar. Muss es auch nicht.
Gruß Hajo

Anzeige
AW: Listindex speichern
29.09.2013 17:02:20
Steffen
Hey,
na klar.....das wäre zu einfach. Klasse!
Wieso die Reihenfolge?
Also: Habe in einer Pool-Liste eine Sammlung von Begriffen, die durch zwei verschiedene Buttons in zwei verschiedene Listboxen eingeordnet werden können. Wird ein Eintrag in der Pool-Liste ausgewählt und per Klick in die eine oder andere Box hinzugefügt, wird der gewählte Eintrag in der Pool-Liste gelöscht. Einfach um zu vermeiden, dass EIN Eintrag in BEIDE Listboxen eingetragen werden kann. Wenn ich mich nun falsch entschieden habe und einen Begriff fälschlicherweise in eine der beiden Listboxen verschoben habe, möchte ich, dass ich per Buttonklick den Eintrag wieder in die Pool-Liste verschieben kann. Das funktioniert auch problemlos. Allerdings wird er eben unten - als letzter Eintrag - angefügt und nicht an seine ursprüngliche Position in der Pool-Liste gesetzt. Deswegen die Spalte mit den Reihenfolgen. Ich habe mir vorgestellt, dass ich bei jedem Eintrag in die Pool-Liste die Einträge einfach sortiere nach der zweiten, ausgeblendeten Spalte. Dann müssten die Einträge eigentlich immer die richtige Reihenfolge haben.
Momentan scheitere ich allerdings daran, dass ich beim umtragen der Einträge von der Pool-Liste in eine der beiden Listboxen zwar den Eintrag hineingeschrieben bekomme, allerdings nicht die zweite Spalte mit der Nummer....
Boah...ich überlege schon das über arrays zu lösen, aber listbox1.list()=arrname liefert auch nicht das gewünschte Ergebnis...
Hast du einen Hinweis für mich?
VG Steffen

Anzeige
AW: Listindex speichern
29.09.2013 18:06:44
fcs
Hallo Steffen,
hier muss du mit der List-Eigenschaft der Listboxen arbeiten. Dann kannst du auch die Werte der 2. Spalte übertragen
Hier 2 Beispielmakros.
Eines, wenn die Listbox für Mehrfachauswahl eingerichtet ist
Eines, wenn immer nur ein Eintragausgewählt werden kann.
Die Verteilung der Pooleinträge über ein Datenarray zu verwalten funktioniert auch, ist aber programmiertechnisch etwas aufwendiger als mit der 2. Spalte in den Listboxen zu arbeiten.
Gruß
Franz
'Bei Listbox mit Mehrfachauswahl - MultiSelect = 1 oder 2
Private Sub cmbVon1_nach_2_Click()
'Einträge von Listbox1 nach Listbox2 übertragen
Dim int1 As Integer, int2 As Integer
Dim varEintrag As Variant, intRF As Integer
With Me.ListBox1
For int1 = 0 To .ListCount - 1
If .Selected(int1) Then
varEintrag = .List(int1, 0)
intRF = .List(int1, 1)
'Eintrag in Zielbox einsortieren
With Me.ListBox2
If .ListCount = 0 Then
.AddItem varEintrag
.List(0, 1) = intRF
Else
For int2 = .ListCount - 1 To 0 Step -1
If .List(int2, 1)  -1 Then
int1 = .ListIndex
varEintrag = .List(int1, 0)
intRF = .List(int1, 1)
'Eintrag in Zielbox einsortieren
With Me.ListBox2
If .ListCount = 0 Then
.AddItem varEintrag
.List(0, 1) = intRF
Else
For int2 = .ListCount - 1 To 0 Step -1
If .List(int2, 1) 

Anzeige
KLASSE !!!!
01.10.2013 19:58:02
Steffen
Hey Franz,
das hat super geklappt! Tausend Dank!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige