Listbox sortieren nur mit Maus
#11
@ snb
Das ist eine wirklich interessante Lösung!
 
Schöne Feiertage
 
Gruß Uwe
Antworten Top
#12
Oder noch etwas einfacheer:

Code:
Private Sub UserForm_Initialize()
  Listbox_Test.List = Tabelle1.Cells(1, 2).CurrentRegion.Value
End Sub

Private Sub Listbox_Test_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal y As Single)
  With Listbox_Test
    If (Button = 2) * ((Shift = 0) * (.ListIndex < (.ListCount - 1)) + (Shift = 1) * (.ListIndex > 1)) Then
      sn = .List
      sp = sn
   
      y = .ListIndex + 1 + 2 * (Shift = 1)
      sn(.ListIndex, 0) = sn(y, 0)
      sn(.ListIndex, 1) = sn(y, 1)
      sn(y, 0) = sp(.ListIndex, 0)
      sn(y, 1) = sp(.ListIndex, 1)
      .List = sn
      End If
    End With
End Sub
Wenn ein Sub nur 1 mal angerufen wird rechtfertigt das keine separate Prozedure.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#13
@ snb
weiter vorn von André, hatte mich der Gedanke gereizt Listboxzeilen nach anklicken + Rechtsklick zu tauschen, egal wie weit diese auseinander stehen.
Anbei mal dieser Weg. Ich weiß das ist Spielerei, aber interessant ist es allemal.
Ich vermute mal, dass es sich auch verkürzen lässt. Bin mal gespannt.

.xlsm   Listbox_Sortieren_ - Kopie(1).xlsm (Größe: 33,37 KB / Downloads: 2)

Gruß Uwe
Antworten Top
#14
Hallo Miteinander,
 
jetzt habe ich noch mal was gebastelt, welches mittel Drag and Drop - linke Maustaste Zeile klicken/halten und ziehen an gewünschter Y Position (andere Zeile) funktioniert.
Da habe ich mich doch erst mal informieren müssen, wie so was eher exotisches funktioniert. Dazu gibt es erstaunlicherweise etliche Beispiele im Netz. 
Hier die Beispieldatei, wo Drag & Drop mehrspaltig ausgeführt wird:


.xlsm   Verschieben ein Zeile in Listbox mittels Drag Drop.xlsm (Größe: 33,63 KB / Downloads: 4)

Durch die Ermittlung des Y Wertes, ist das hinfummeln an die richtige Stelle auch etwas gewöhnungsbedürftig.
Gruß Uwe
Antworten Top
#15
Schön dass du dich etwas Mühe macht mehr zu lernen.

2 Bemerkungen:
- Eigenschaften (wie .columncount und columnwidths) von ein Control sollte man im Design Modus festlegen nicht im Code.
- Benütze die ListObject-Eigenschaften

Die Initialize-Prozedure kann dann so aussehen:


Code:
Private Sub UserForm_Initialize()
  ListBox1.List = Tabelle1.ListObjects(1).DataBodyRange.Value
  sn = Tabelle1.ListObjects(1).HeaderRowRange
   
  For jj = 1 To UBound(sn, 2)
    Me("Lbl_Kopf" & jj) = sn(1, jj)
  Next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#16
Vielleicht einfacher mit Multiselect:

1. selektiere das Item das irgendwo anderes gesetzt werden muss.
2. selektiere das Item bevor welches das schon selektierte Item gesetzt werden muss

fertig.


Angehängte Dateien
.xlsb   __sort_multiselect_snb.xlsb (Größe: 24,17 KB / Downloads: 5)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#17
Ich habe jetzt erst gesehen. dass sich so viele mit diesem Problem (naja, zumindest für mich) befasst haben. Ich weiss dass ich mich falsch ausgedrückt habe. Ich wollte mit der gedrückten Maus die Zeile verschieben. Aber mit euren Lösungen habe ich einen genialen Ansatz gefunden.
 Ich finde das echt toll und möchte mich noch einmal bei ALLEN bedanken. Leider macht mir das snb auf meinem Rechner bzw mit meiner Version Probleme. 


Ich wünsche euch noch ein besinnliches Fest und bleibt so toll
LG
Michael
Antworten Top
#18
Nö, kein Excel Version Thema

Schau mal die angehängte Datei an.

- Selektiere ein Element
- rechter Mausklick: wechselen nach unten
- Shift + rechter Mausklick: wechselen nach oben


Angehängte Dateien
.xlsb   __Listbox_item_verplaatsen_snb.xlsb (Größe: 19,26 KB / Downloads: 3)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#19
Hallo Miteinander,
 
@ snb
 
auch weitere interessante Varianten, um das Tauschen von 2 Zeilen zu lösen. Bei mir funktionieren Beide. Das Handling ist mit wenigen Handgriffen auch ohne Nachlesen rauszubekommen.
 
@ Michael
Das mit Drag & Drop ist halt programmiertechnisch nicht leicht zu durchschauen. Da hilft leider der Haltepunkt und F8 nur bedingt weiter. Da habe ich mich auch erst ein bisschen durchwühlen müssen.
 
Insgesamt ist dieses Thema aber für mich lehrreich und interesannt. Das war der Grund, warum ich da drangeblieben war.
Mit so einer Drag & Drop Lösung kann man auch Zeilen zwischen mehreren Listboxen verschieben, ohne dafür Buttons zu verwenden.
 
Gruß Uwe
Antworten Top
#20
@Egon,

Auch diese letzte Variante scheint mir 'besser':

https://www.clever-excel-forum.de/attach...?aid=46326
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste