Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
828to832
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
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Drag & Drop

Drag & Drop
23.12.2006 19:31:02
Timo
Hallo!
Ich habe in einer Listbox mehrere Dateinamen stehen. Jetzt würde ich gerne diese über Drag & Drop in eine zweite kopieren. Mit dem COde von der Excelhilfe kann ich immer nur einen Dateinamen verschieben. Wenn ich den Multiselect der Listbox1 auf 2 -fmMultiselectExtended stelle bekomme ich immer die Fehlermeldung Laufzeitfehler '94' Unzulässige Verwendung von Null.
Code

Private Sub ListBox2_BeforeDragOver(ByVal Cancel As _
MSForms.ReturnBoolean, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal DragState As Long, _
ByVal Effect As MSForms.ReturnEffect, _
ByVal Shift As Integer)
Cancel = True
Effect = 1
End Sub


Private Sub ListBox2_BeforeDropOrPaste(ByVal _
Cancel As MSForms.ReturnBoolean, _
ByVal Action As Long, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal Effect As _
MSForms.ReturnEffect, ByVal Shift As Integer)
Cancel = True
Effect = 1
ListBox2.AddItem Data.GetText
End Sub


Private Sub ListBox1_MouseMove(ByVal Button As _
Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
Dim MyDataObject As DataObject
If Button = 1 Then
Set MyDataObject = New DataObject
Dim Effect As Integer
MyDataObject.SetText ListBox1.Value
Effect = MyDataObject.StartDrag
End If
End Sub


Private Sub UserForm_Initialize()
For i = 1 To 10
ListBox1.AddItem "Choice " _
& (ListBox1.ListCount + 1)
Next i
End Sub

Danke für Eure Hilfe.
Gruß Timo

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Drag & Drop in ListBox
24.12.2006 14:17:41
Christoph
Hallo Timo,
ein Ansatz:
(das Handling ist gewöhnungsbedürftig - halte die Strg- bzw. Shift-Taste bei der Auswahl und beim "rüberziehen" gedrückt)
Gruß
Christoph
Private Sub ListBox1_MouseMove(ByVal Button As _
Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
Dim MyDataObject As DataObject
Dim i As Long
Dim Effect As Integer
With ListBox1
If Button = 1 Then
For i = 0 To .ListCount - 1
If .Selected(i) Then
Set MyDataObject = New DataObject
MyDataObject.SetText .List(i)
Effect = MyDataObject.StartDrag
End If
Next
End If
End With
End Sub

Anzeige
AW: Drag & Drop in ListBox
25.12.2006 18:36:41
Timo
Hallo Christoph!
Vielen Dank! Ich benutze jetzt die linke Maustaste zum Markieren und die rechte zum verschieben.
Jetzt hätte ich aber noch eine Frage.
Die verschobenen Dateinamen werden immer am Ende der Listbox eingefügt. Kann man das auch irgendwie so einstellen, dass es genau da eingefügt wird wo sich der Mauszeiger befindet?
Gruß Timo
AW: Drag & Drop in ListBox
26.12.2006 13:11:34
Christoph
Halo Timo,
dazu müsstest du die X- und Y-Position der Maus in ListBox2 heranziehen und je nach Schriftgröße der ListBox2 den jeweiligen Index berechnen. Anschließend alle (vorh. und neue) Einträge in ein Array schreiben und die ListBox wieder mit diesem Array füllen.
Bei "fmMultiselectExtended" muss die Auswahl in ListBox1 nicht zusammenhängend sein. Wie und wo sollen dann die Einträge in ListBox2 positioniert werden.
Ich würde die Position der Einträge in ListBox2 eher mittels SpinButton ändern.
Gruß
Christoph
Anzeige

258 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige