Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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

Listboxeintrag mit Maus verschieben

Listboxeintrag mit Maus verschieben
detlef
Hallo Excel-Profis;
ich hab mir da was gebastelt zum Verschieben eines Eintrags in einer Listbox mit der Maus; das entspricht mit sicherheit nicht dem Programmierstandart aber es funktioniert erst mal;
Brauche dazu eine Userform1, und eine zweispaltige Listbox1 wobei beim Einlesen in der zweiten Spalte als Hilfselement die jeweilige Indexnummer steht, kann das jemand professioneller bauen?
Public merk1 'zum Merken der Altposition
Public merk2 'zum Merken der Neuposition
Private Sub ListBox1_Click()
'Position merken von der der Eintrag verschoben werden soll
If merk1 = "" Then merk1 = ListBox1.ListIndex
End Sub
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
_
ByVal Y As Single)
'Position merken nach der der Eintrag verschoben werden soll
If merk2 = "" Then merk2 = ListBox1.ListIndex
'sind beide Positionen gleich beenden
If merk1 = merk2 Then
merk1 = ""
merk2 = ""
ListBox1.ListIndex = -1
Exit Sub
End If
'von unten nach oben verschieben
If merk1 > merk2 Then
ListBox1.List(merk1, 1) = merk2
ListBox1.List(merk2, 1) = merk2 + 1
For a = merk2 To merk1
If a = ListBox1.ListCount - 1 Then GoTo sort
If ListBox1.List(a, 1) = ListBox1.List(a + 1, 1) Then
ListBox1.List(a + 1, 1) = a + 2
End If
Next a
End If
'von oben nach unten verschieben
If merk1  CDbl(.List(iNext, 1)) Then
iTmp0 = .List(iLast, 0)
iTmp1 = .List(iLast, 1)
.List(iLast, 0) = .List(iNext, 0)
.List(iLast, 1) = .List(iNext, 1)
.List(iNext, 0) = iTmp0
.List(iNext, 1) = iTmp1
End If
Next iNext
Next iLast
End With
merk1 = ""
merk2 = ""
ListBox1.ListIndex = -1
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 0 To 19
ListBox1.AddItem
ListBox1.List(i, 0) = "Eintrag " & i
ListBox1.List(i, 1) = i
Next i
End Sub
Noch mal vielen Dank an Martin S. für deine Antwort vom 13.01.2010 funktioniert prima aber eben immer nur eins rauf oder runter
Meinste Drag and Drop ?
18.01.2010 11:56:17
Renee
Hi,
Wo ist den die Listbox platziert ? UF oder Tabellenblatt ?
GreetZ Renée
OT: Hi, Renée, doch kein Skiunfall oder...
18.01.2010 13:36:50
Luc:-?
...schon wieder genesen oder liegt's am Tauwetter...? ;-)
Gruß Luc :-?
OT: Die Schweine haben mich gegrippt ;-) oT
18.01.2010 13:48:02
Renee

Oje, so ein Pech! Das 1.Opfer, dessen...
18.01.2010 21:46:37
Luc:-?
...Name mir was sagt... ;-)
Weiter gute Besserung!
Gruß Luc :-?
AW: Oje, so ein Pech! Das 1.Opfer, dessen...
20.01.2010 19:57:04
detlef
Hallo Luc;
das war jetzt wohl aber nicht für mich bestimmt
Gruß Detlef
Bist du auch krank...? Gruß owT
23.01.2010 01:28:53
Luc:-?
:-?
AW: Meinste Drag and Drop ?
18.01.2010 14:05:02
detlef
Hallo Renée;
die Listbox ist auf der Userform und ja ich mein sowas wie Drag and Drop nur mit den Infos aus der Excelhilfe komm ich nicht klar
Detlef
AW: Meinste Drag and Drop ?
18.01.2010 15:41:42
Renee
Hi Detlef,
OK, dann machen wir mal ein kleines Beispiel
GreetZ Renée
Anzeige
AW: Meinste Drag and Drop ?
18.01.2010 15:51:07
detlef
Hallo Renée;
das funzt schon ganz gut aber ich bekomme den Eintrag 1 mit einem mal verschieben nur hinter Position 7 ganz ans Ende gehts nicht
Trotzdem super; wenn ich mir da meinen Mist ansehe
AW: Meinste Drag and Drop ?
18.01.2010 15:55:21
Renee
Hi Detlef,
Also ich kann den Eintrag 1 VOR den Eintrag 10 verschieben und anschliessend den Eintrag 10 vor den Eintrag 1.
Die Frage ist also nur ob du den Drop VOR oder NACH dem Eintrag machst, wo sich der Mousepointer befindet. Hier ist es mit immer VOR den Eintrag realisiert.
GreetZ Renée
AW: Meinste Drag and Drop ?
18.01.2010 15:59:55
detlef
Hi Renee
bei mir hopst der immer 3 Einträge vor dem Mauszeiger rein
Detlef
Anzeige
AW: Meinste Drag and Drop ?
18.01.2010 16:17:01
detlef
Hallo Renee
war ich wohl selber Schuld hatte die Höhe der Listbox vergrößert, wenn die genau hinter Eintrag 10 abschließt hopst Eintrag 1 auch vor Eintrag 10; meine Listbox kann ich aber nicht so groß machen (Höhe), habe rechts den Scrollbalken, kann man da was machen?
Detlef
AW: Meinste Drag and Drop ?
18.01.2010 16:21:28
Renee
Hi Detlef,
Dann sag doch nächstes mal, was du anders gemacht hast, sonst such ich in meinem Beispiel nach dem Fehler. Das Drag & Drop und gleichzeitiges scrollen wird schwierig. Denn während des Drags kann ich nicht noch den Scrollbalken bewegen. Die Frage ist also:
Warum muss die Listbox so klein sein ?
Soll ich wirklich nach ner Lösung suchen oder lieber nen weiteren Tee trinken ?
GreetZ Renée
Anzeige
AW: Meinste Drag and Drop ?
18.01.2010 16:28:56
detlef
Sorry Renee
hast mir super geholfen, lassen wir´s erst mal gut sein und trink deinen hoffentlich heißen Tee bei diesen Sauwetter;
Listbox muß so klein sein da auf der UF noch mehr drauf ist und in der Box 20 und mehr Einträge sein können, die ist dynamisch je nach Bedarf, die Liste enthält Einträge mit Blattnamen die je nach Bedarf in einer neuen Mappe zusammengestellt werden, eben mal mit mehr oder weniger Tabellen und in anderer Reihenfolge
Detlef
AW: Meinste Drag and Drop ?
18.01.2010 17:14:28
detlef
Hallo Renee
ich noch mal; geht das auch mit einer mehrspaltigen Listbox?
Gruß Detlef

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige