Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ListBox Reihenfolge ändern

Forumthread: ListBox Reihenfolge ändern

ListBox Reihenfolge ändern
20.11.2012 14:51:11
Matthias
Hallo zusammen,
ich habe eine Listbox, bestehend aus mehreren Spalten und Zeilen (Bild der Userform beigefügt).
Durch drücken des Buttons "Position änderen" soll eine markierte Zeile an eine bestimmte Position, die in einer InputBox eingetragen wird, verschoben werden, zB die letzte Zeile an die Position 3.
Hat irgendjemand eine Lösung, wie man dies bewerkstelligen kann.
Vieln Dank schon Mal
Matthias
Userbild

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox Reihenfolge ändern
20.11.2012 16:48:09
Hajo_Zi
Ich benutze schon Version 2013 aber selbst diese Version kann aus einem Bild eine UserForm erstellen, geschweige den noch eine Inputbox einfügen.
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Link zur Datei wäre nicht schlecht.

Anzeige
AW: ListBox Reihenfolge ändern
21.11.2012 01:35:47
Ass
Hallo Matthias
Beispiel bei 4 Spalten
Private Sub CommandButton1_Click()
Dim Pos&
Pos = Application.InputBox("nnn", "nnn", , , , , , 1) - 1
'Ensure ListBox contains list items
If ListBox1.ListCount >= 1 Then
'If no selection, choose last list item.
If ListBox1.ListIndex = -1 Then
MsgBox ("nix markiert.")
Else
ListBox1.AddItem ListBox1.Text, Pos
ListBox1.List(Pos, 1) = ListBox1.List(ListBox1.ListIndex, 1)
ListBox1.List(Pos, 2) = ListBox1.List(ListBox1.ListIndex, 2)
ListBox1.List(Pos, 3) = ListBox1.List(ListBox1.ListIndex, 3)
ListBox1.RemoveItem (ListBox1.ListIndex)
ListBox1.ListIndex = -1
End If
End If
End Sub

Anzeige
AW: ListBox Reihenfolge ändern
21.11.2012 01:36:42
Ass
Hallo Matthias
Beispiel bei 4 Spalten
Private Sub CommandButton1_Click()
Dim Pos&
Pos = Application.InputBox("nnn", "nnn", , , , , , 1) - 1
'Ensure ListBox contains list items
If ListBox1.ListCount >= 1 Then
'If no selection, choose last list item.
If ListBox1.ListIndex = -1 Then
MsgBox ("nix markiert.")
Else
ListBox1.AddItem ListBox1.Text, Pos
ListBox1.List(Pos, 1) = ListBox1.List(ListBox1.ListIndex, 1)
ListBox1.List(Pos, 2) = ListBox1.List(ListBox1.ListIndex, 2)
ListBox1.List(Pos, 3) = ListBox1.List(ListBox1.ListIndex, 3)
ListBox1.RemoveItem (ListBox1.ListIndex)
ListBox1.ListIndex = -1
End If
End If
End Sub

Anzeige
AW: ListBox Reihenfolge ändern
22.11.2012 08:34:56
Matthias
Danke, hat geklappt.
;
Anzeige
Anzeige

Infobox / Tutorial

Reihenfolge in einer ListBox ändern in Excel


Schritt-für-Schritt-Anleitung

Um die Reihenfolge von Einträgen in einer ListBox in Excel zu ändern, kannst Du den folgenden VBA-Code verwenden. Dabei wird eine markierte Zeile an eine gewünschte Position verschoben, die Du über eine InputBox eingibst.

  1. Öffne Deine Excel-Datei und gehe in den VBA-Editor (Alt + F11).

  2. Füge eine UserForm hinzu und platziere eine ListBox sowie einen CommandButton darauf.

  3. Kopiere den folgenden VBA-Code in das Code-Fenster der UserForm:

    Private Sub CommandButton1_Click()
       Dim Pos As Long
       Pos = Application.InputBox("Bitte Position eingeben:", "Position ändern", , , , , , 1) - 1
    
       ' Überprüfen, ob die ListBox Einträge enthält
       If ListBox1.ListCount >= 1 Then
           ' Wenn keine Auswahl, wähle das letzte Listenelement.
           If ListBox1.ListIndex = -1 Then
               MsgBox ("Es wurde nichts markiert.")
           Else
               ListBox1.AddItem ListBox1.Text, Pos
               ListBox1.List(Pos, 1) = ListBox1.List(ListBox1.ListIndex, 1)
               ListBox1.List(Pos, 2) = ListBox1.List(ListBox1.ListIndex, 2)
               ListBox1.List(Pos, 3) = ListBox1.List(ListBox1.ListIndex, 3)
               ListBox1.RemoveItem (ListBox1.ListIndex)
               ListBox1.ListIndex = -1
           End If
       End If
    End Sub
  4. Schließe den VBA-Editor und teste die UserForm.


Häufige Fehler und Lösungen

  • Fehler: "Es wurde nichts markiert."

    • Lösung: Stelle sicher, dass Du einen Eintrag in der ListBox ausgewählt hast, bevor Du auf den Button klickst.
  • Fehler: Die Position ist außerhalb des erlaubten Bereichs.

    • Lösung: Achte darauf, dass die Eingabe für die Position im Bereich der vorhandenen Listeneinträge liegt.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du die ListBox auch manuell anpassen. Dazu könntest Du die Daten in einer Excel-Tabelle sortieren und dann die ListBox mit diesen Daten neu füllen.

  1. Sortiere die Daten in einer Excel-Tabelle.
  2. Aktualisiere die ListBox mit den neu sortierten Daten.

Dies ist eine einfache Methode, um die Druckreihenfolge in Excel zu ändern, ohne VBA zu verwenden.


Praktische Beispiele

Nehmen wir an, Deine ListBox enthält die folgenden Einträge:

  • Eintrag 1
  • Eintrag 2
  • Eintrag 3
  • Eintrag 4

Wenn Du "Eintrag 3" auswählst und die Position 2 angibst, wird das Ergebnis wie folgt aussehen:

  • Eintrag 1
  • Eintrag 3
  • Eintrag 2
  • Eintrag 4

Tipps für Profis

  • Verwende die ListCount-Eigenschaft, um die Anzahl der Elemente in der ListBox zu überprüfen.
  • Du kannst den Code erweitern, um mehrere Einträge gleichzeitig zu verschieben.
  • Achte auf die Benutzerfreundlichkeit, indem Du informative Fehlermeldungen anzeigst.

FAQ: Häufige Fragen

1. Kann ich die Reihenfolge der ListBox auch ohne VBA ändern? Ja, Du kannst die Daten in einer Excel-Tabelle sortieren und die ListBox mit diesen sortierten Daten neu füllen.

2. Funktioniert dieser Code in allen Excel-Versionen? Der bereitgestellte Code sollte in Excel 2013 und späteren Versionen funktionieren, da er grundlegende VBA-Funktionen verwendet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige