Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabelle sortieren VBA

Tabelle sortieren VBA
01.01.2023 16:37:47
Thomas
Hallo.
Zunächst ein glückliches, gesundes neues Jahr!
Ich habe eine kleine Eiaenhower Matrix.
Innerhalb der Matrix ist alles fein.
Es geht nur um die Sortierung innerhalb der AufgabenLISTE
Es gibt die Spalten "Was?", "Wichtig?", "Dringend?", "Priorität" (1-3)
Hier sollen Einträge yutomatisch erst NACH Angabe der Priorität neu sortiert werden, die anderen Sortierkretieren greifen aber leider schon bei der Eingabe von "Was?" (also dem Aufgabennamen)
Außerdem gelingt es mir leider nicht, mehr als drei Sortierkreterien umzusetzen, den Key4 will er nicht annehmen, im VBA Code.
ZIEL soll also sein:
ich gebe der Aufgabe einen Namen ("Was?")
lege fest ob wichtig
lege fest ob dringend
und noch die Priorität (1= hoch 2= Mittel, 3= niedrig) (es werden in der Matrix je nur 10 Aufgaben angezeigt, deshalb sollen die mit höchster Priorität dort auftauchen)
IST
ich kann nur nach drei Spalten sortieren
er sortiert direkt nach Eingabe von "Was?" los, damit springt die Eingabe iirgendwo hin
Meine Datei mit Code hänge ich an.
Vielleicht kann mir ja jemand mit VBA Kenntnissen hier helfen? Ich schaffes nicht, diesen aus Schnipseln korrekt zusammenzubauen.
Vielen Dank
Thomas
https://www.herber.de/bbs/user/157019.xlsm
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle sortieren VBA
01.01.2023 17:50:11
Thomas
Vielen Dank zunächst für Deine Hilfe!
Die SortierREIHENFOLGE soll aber, und ich hatte wohl nicht extra darauf hingewiesen, es stand nur im Code, entschuldigung, nach Spalten J, K, L, I, sein.
Also erst nach Wichtigkeit, Dringlichkeit, Priorität und dann nach dem Namen.
Solange die Priorität leer ist, soll er noch nicht sortieren (weil die Zeile sonst wegspringt). Ändert man aber Wichtigkeit oder Dringlichkeit oder Priorität, soll er natürlich neu sortieren.
Entschuldige bitte nochmal für die vertane Zeit, verbunden mit der Bitte um eine Anpassung.
Anzeige
AW: Tabelle sortieren VBA
01.01.2023 18:50:05
Thomas
Prima !! Vielen Dank, Du Mensch der wenigen Worte :)
Hab ein gutes neues Jahr!
Thomas
Gerne !
01.01.2023 18:51:11
onur
Danke, gleichfalls!
Anzeige
Doch noch ein Nachtrag
02.01.2023 22:55:44
Thomas
Schönen guten Abend!
Etwas gibt es noch:
Ich habe mir jetzt noch versucht zu schreiben, dass, wenn ich die Aufgabe ("Was?") lösche, die 3 Spalten dahinter auch geleert werden.
Das klappt auch.
Ich hatte aber gehofft, er würde die Zeile dann wieder nach "unten" sortieren, weil ja jetzt keine Priorität mehr drin steht.
Die leere Zeile bleibt aber wo sie ist.
Kannst Du mir dabei nochmal helfen?
Vielen Dank!
Thomas
https://www.herber.de/bbs/user/157052.xlsm
Anzeige
AW: Doch noch ein Nachtrag
02.01.2023 23:20:28
Thomas
Mannometer,
superflotte Antwort - Danke!
klappt prima - Danke!
bin glücklich - Danke :)
...und hab eventuell zweieinhalb Dinge dazugelernt ;)
Gerne !
02.01.2023 23:22:51
onur
Anzeige
AW: Doch noch ein Nachtrag
03.01.2023 00:06:52
Thomas
Habe ich übernommen.
Die Änderung ist ja eher übersichtlich, aber -ob der Uhrzeit- erahne ich nur die sauberere Lösung!
Flutscht wunderbar!
Ich freue mich schon aufs Aufgaben löschen ;)
-nochmals- Danke für die Nacharbeit.
Anzeige
AW: Tabelle sortieren VBA
02.01.2023 16:32:45
snb
Alternative:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("J5:L46")) Is Nothing Then
If Cells(Target.Row, 12)  "" Then
With ActiveSheet.Sort.SortFields
.Clear
For j = 0 To 3
.Add Range("I5:I46").Offset(, j)
Next
.Parent.SetRange Range("I5:L46")
.Parent.Apply
End With
End If
End If
End Sub

Anzeige
AW: Tabelle sortieren VBA
02.01.2023 23:03:53
Thomas
Danke für Deine Alternative!
Die Version sortiert aber irgendwie doch anders, weshalb ich bei der ersten Version bleibe, die schon gut funktioniert!
Vielen Dank trotzdem!
Thomas
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabelle sortieren mit VBA: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um eine intelligente Tabelle in Excel VBA nach Priorität, Wichtigkeit und Dringlichkeit zu sortieren, folge diesen Schritten:

  1. Öffne deine Excel-Datei und gehe zum VBA-Editor, indem du ALT + F11 drückst.

  2. Füge einen neuen Modul ein: Klicke mit der rechten Maustaste auf "VBAProject (dein Dateiname)" und wähle Einfügen > Modul.

  3. Gib den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("J5:L46")) Is Nothing Then
            If Cells(Target.Row, 12) <> "" Then
                With ActiveSheet.Sort.SortFields
                    .Clear
                    .Add Key:=Range("J5:J46"), SortOn:=xlSortOnValues, Order:=xlDescending
                    .Add Key:=Range("K5:K46"), SortOn:=xlSortOnValues, Order:=xlDescending
                    .Add Key:=Range("L5:L46"), SortOn:=xlSortOnValues, Order:=xlDescending
                    .Add Key:=Range("I5:I46"), SortOn:=xlSortOnValues, Order:=xlAscending
                End With
                ActiveSheet.Sort.SortFields.Parent.Sort.SortFields.Clear
                ActiveSheet.Sort.SortFields.Parent.SetRange Range("I5:L46")
                ActiveSheet.Sort.SortFields.Parent.Apply
            End If
        End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Blatt.

  5. Teste die Sortierung: Ändere Werte in den Spalten "Wichtig?", "Dringend?" und "Priorität", um die automatische Sortierung zu überprüfen.


Häufige Fehler und Lösungen

  • Fehler: Die Sortierung funktioniert nicht.

    • Lösung: Stelle sicher, dass die Zellen in den Spalten "Wichtig?", "Dringend?" und "Priorität" korrekt ausgefüllt sind. Die Sortierung wird nur ausgelöst, wenn in der entsprechenden Zeile ein Wert vorhanden ist.
  • Fehler: Excel springt bei Eingaben.

    • Lösung: Überprüfe den Code und achte darauf, dass die Sortierung erst erfolgt, wenn alle notwendigen Informationen eingegeben sind.

Alternative Methoden

Wenn du nach einer anderen Möglichkeit suchst, Tabellen in Excel zu sortieren, kannst du auch die Funktion „Sortieren“ im Menü verwenden:

  1. Wähle die Tabelle aus.
  2. Gehe zu Daten > Sortieren.
  3. Wähle die Spalten aus, nach denen du sortieren möchtest (z.B. Wichtigkeit, Dringlichkeit, Priorität).
  4. Klicke auf OK.

Diese Methode eignet sich, wenn du keine VBA-Kenntnisse hast und deine Daten schnell sortieren möchtest.


Praktische Beispiele

Hier sind einige Szenarien, in denen das Sortieren von Tabellen in Excel nützlich sein kann:

  • Projektmanagement: Aufgaben werden nach Dringlichkeit und Wichtigkeit sortiert, sodass die wichtigsten Aufgaben zuerst angezeigt werden.
  • Eventplanung: Teilnehmerlisten werden nach Anmeldedatum oder Priorität sortiert.
  • Aufgabenverwaltung: Erstelle eine Aufgabenliste mit Prioritäten, die automatisch nach Wichtigkeit und Dringlichkeit sortiert wird.

Diese Anwendungen helfen dir, deine Daten effizienter zu verwalten und Entscheidungsprozesse zu optimieren.


Tipps für Profis

  • Verwende benannte Bereiche: Dies erleichtert die Handhabung von Datenbereichen im VBA-Code.
  • Nutze bedingte Formatierung: Das visuelle Hervorheben von wichtigen Aufgaben kann die Benutzerfreundlichkeit verbessern.
  • Teste deinen Code: Stelle sicher, dass du den VBA-Code in einer Testumgebung ausprobierst, bevor du ihn in Echtzeit anwendest.
  • Dokumentiere deinen Code: Kommentare im Code helfen dir und anderen Nutzern, die Logik hinter der Sortierung zu verstehen.

FAQ: Häufige Fragen

1. Wie kann ich mehr als drei Kriterien zum Sortieren hinzufügen? Um mehr Kriterien hinzuzufügen, füge einfach weitere .Add-Zeilen im VBA-Code hinzu, ähnlich wie im Beispiel oben.

2. Was passiert, wenn ich die Aufgaben lösche? Wenn eine Aufgabe gelöscht wird, solltest du sicherstellen, dass der Code eine Sortierung nach dem Löschen der Zeile durchführt, um die Tabelle aktuell zu halten.

3. Funktioniert dieser Code in Excel 2016? Ja, der Code ist kompatibel mit Excel 2016 und neueren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige