Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Listboxeintrag mit Maus verschieben | Herbers Excel-Forum


Betrifft: Listboxeintrag mit Maus verschieben von: detlef
Geschrieben am: 10.01.2010 18:45:51

Hallo Excel-Profi´s Euch allen ein erfolgreiches Exceljahr und jetzt meine Frage
Ich möchte in einer Listbox einen Eintrag mit der Maus verschieben zum Beispiel Eintrag von Position 5 nach Position 2 geht sowas in einer Listbox?

  

Betrifft: AW: Listboxeintrag mit Maus verschieben von: Daniel
Geschrieben am: 10.01.2010 19:37:22

Hi

direkt wird das von Excel nicht unterstützt, du müsstest das nachprogrammieren, man könnte hierfür aber die MouseUp- und MouseDown-Ereignisse nutzen, dh mit etwas VBA-Programmiererfahrung müsste das machbar sein.

Gruß, Daniel


  

Betrifft: AW: Listboxeintrag mit Maus verschieben von: detlef
Geschrieben am: 10.01.2010 20:23:05

Danke für deine schnelle Antwort;
in der steht aber das nächste Problem schon drinn "Programmiererfahrung", bin eben Laie und hoffe das mir ein Excelprofi helfen kann; hab mit MouseUp und MouseDown schon erfolglos experimentiert


  

Betrifft: AW: dann zeig doch mal ... von: Daniel
Geschrieben am: 10.01.2010 20:38:19

deine Versuche mit einer Beispieldatei.
am Konkreten Beispiel lässt sich immer leichter was machen.
Außerdem gibts bei der Ausführung schon ein paar Einflussfaktoren, die bekannt sein sollten, z.B. wie wird die Listbox befüllt.

Gruß, Daniel


  

Betrifft: AW: dann zeig doch mal ... von: detlef
Geschrieben am: 10.01.2010 20:47:22

meine Experimente habe ich wegen Erfolglosigkeit schon gelöscht; geladen wird die Listbox so

Private Sub UserForm_Initialize()
For a = 1 To 20
ListBox1.AddItem "eintrag_" & a - 1
Next a
ListBox1.ListIndex = 0
End Sub



  

Betrifft: AW: dann zeig doch mal ... von: Daniel
Geschrieben am: 10.01.2010 20:51:27

Das ist jetzt aber keine Beispieldatei.
Ich bin jetzt einfach zu faul, mir selber was aufzubauen (vorallem mit Userforms)
außerdem möchte ich deine bisherigen Versuche sehen, vielleicht sind die ja gar nicht so schlecht und es hakt nur an einer kleinen Ecke, dann kann ich mir viel Arbeit sparen.

Gruß, Daniel


  

Betrifft: Vorerst nur Lösungsansatz, bei Antwort auch Lösung von: Martin S.
Geschrieben am: 13.01.2010 09:33:12

Hallo Daniel,

da Dein Beitrag schon 3 Tage alt ist, möchte ich jetzt keinen unnötigen Programmieraufwand betreiben. Hier ein Code zum Verschieben der Listbox Einträge. Erstelle Dir noch zwei CommandButton zum Hoch- bzw. Herunterschieben der Einträge. Wenn Du antwortest, bin ich gerne bereit (wie von Dir gewünscht) auf die beiden CommandButton zu verzichten und das Verschieben der ListboxEinträge mittels Computermaus zu lösen.

Viele Grüße

Martin

Option Explicit

Private Sub CommandButton1_Click()
    MoveListItem (True)
End Sub
Private Sub CommandButton2_Click()
    MoveListItem (False)
End Sub

Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 1 To 50
        ListBox1.AddItem "Eintrag " & i
    Next i
End Sub

Private Sub MoveListItem(bolUp As Boolean)
  Dim intSwapRow As Integer, i As Integer
  Dim varVal As Variant

  With ListBox1
    If .ListIndex < 0 Or (bolUp And .ListIndex = 0) Or (Not bolUp And .ListIndex = .ListCount -  _
1) Then Exit Sub
    intSwapRow = .ListIndex + IIf(bolUp, -1, 1)
    For i = 0 To .ColumnCount - 1
      varVal = .Column(i, .ListIndex)
      .Column(i, .ListIndex) = .Column(i, intSwapRow)
      .Column(i, intSwapRow) = varVal
    Next i
    .Selected(intSwapRow) = True
  End With
End Sub



  

Betrifft: AW: Vorerst nur Lösungsansatz, bei Antwort auch Lösung von: detlef
Geschrieben am: 15.01.2010 15:58:05

Hallo Martin;
dein Lösungsansatz funktioniert prima, die Option mit der Maus währe natürlich die feinere Variante
Vielen Dank erst mal
Wenn du das mit der Maus noch hin bekommst ist das dann Spitze
Gruß Detlef


Beiträge aus den Excel-Beispielen zum Thema "Listboxeintrag mit Maus verschieben"