Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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
Inhaltsverzeichnis

Automatisierte Prioritätenliste

Automatisierte Prioritätenliste
04.04.2018 09:05:51
Thomas
Hallo zusammen,
ich stehe aktuell vor folgender Herausforderung:
Ich habe eine normale Excel Tabelle mit verschiedenen Aufgabenpunkten.
Nun sollen diese einzelnen Zeilen aber noch individuell von Dritten priorisiert werden.
Dafür gibt es eine Spalte "Priorität", in der die Werte 1 bis 30 (am besten per Dropdown) eingetragen werden können.
Gibt es eine Möglichkeit, dass erstens die Werte nur einmalig eingetragen werden können (also jede Priorisierung nur einmal). Und zweitens, dass sich die Zeilen automatisch in der Reihenfolge ihrer Priorisierung anordnen?
Also wenn ich jetzt in einer Zeile die Priorisierung auf "1" ändere, dass diese Zeile ganz nach oben springt ("2" and die zweite Stelle usw. ...).
Kann mir da vielleicht jemand weiterhelfen, bzw. ist sowas überhaupt machbar?
Danke & viele Grüße
Thomas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ja, das ist möglich, aber...
04.04.2018 09:10:05
Oberschlumpf
...zeig mal bitte eine Bsp-Datei mit Bsp-Daten.
Hi Thomas,
du verrätst nicht, welche Zeilen/Spalten du nutzt.
Zeig uns alo bitte per Upload eine Bsp-Datei, die genau so aufgebaut ist, wie deine Originaldatei.
Ciao
Thorsten
AW: ja, das ist möglich, aber...
04.04.2018 11:21:58
Oberschlumpf
Hi Thomas,
ich hab mittlerweile selbst "meine" Bsp-Datei "gebastelt".
Hier, guck mal:
https://c.gmx.net/@334256655850015599/MYQveJlhSg6rnOFE4PSGJA
Es handelt sich um eine Video-Datei (mp4), die Folgendes zeigt:
- als Bsp werden die Spalten A (Aufgabe) und Spalte b (Priorität) genutzt
- jede Zelle in Spalte B hat, wie gewünscht, eine Wert-Auswahlliste mit den Werten 1 (minimum) und 30 (Maximum)
- sobald in Spalte B ein Wert von 1 bis 30 ausgewählt wurde, wird die komplette Liste automatisch nach Spalte B, aufsteigend, sortiert
- wird in Spalte B ein Prio-Wert ausgewählt, der schon in einer anderen Zeile vorhanden ist, erscheint ein Hinweis, dass jeder Prio-Wert nur 1x ausgewählt werden darf; der doppelt ausgewählte Wert wird automatisch entfernt
- werden alle Werte in Spalte B wieder gelöscht, wird die komplette Liste jetzt aufsteigend nach Spalte A sortiert
Ok, der letzte Punkt ist vielleicht nicht gewünscht und kann natürlich aus dem Code entfernt werden, aber ich war gerad in "VBA-Bastel-Laune" :-)
So, jetzt wunderst du dich vielleicht, wieso ich dir nur einen Film zeige, wie es funktionieren kann und nicht gleich meine Bsp-Datei per Upload zur Verfügung stelle.
Na ja, ich weiß noch immer nicht, welche Zeilen/Spalten in deiner Datei genutzt werden.
Und ich möchte ja deine Bsp-Datei, die die gleichen Zeilen/Spalten wie in deiner Originaldatei nutzt, natürlich vom Code her anpassen.
Aber dafür benötige ich eben von dir eine Bsp-Datei per Upload mit Bsp-Daten.
Ciao
Thorsten
Anzeige
AW: ja, das ist möglich, aber...
04.04.2018 11:31:35
Thomas
Hi Thorsten,
sorry, ich hatte erst die von Bernd verknüpfte andere Lösung genommen, die auch zuerst funktioniert hat. Da es aber jetzt nicht mehr so wirklich klappt, teste ich mal deine Lösung.
Bevor ich mir das Video mal anschaue, ist hier anbei meine Beispiel Datei.
Die Datei zeigt zwar nur 10 verschiedene Zeilen mit Inhalten, aber das kann dann ja beliebig erweitert werden. Die Anzahl der Spalten etc. ist so wie in der Originaldatei.
https://www.herber.de/bbs/user/120846.xlsx
VG
Thomas
AW: ja, das ist möglich, aber...
04.04.2018 11:38:57
Thomas
Kleiner Nachtrag:
Deine Lösung sieht ziemlich perfekt aus :)
Wenn wir das jetzt noch auf meine Datei anpassen könnten, wäre das super ;)
Anzeige
AW: ja, das ist möglich, aber...
04.04.2018 12:00:32
Oberschlumpf
Hi Thomas,
ja, danke für ziemlich perfekt :-)
Und ich hab deine Bsp-Datei auch angepasst.
Hier, guckst du:
https://www.herber.de/bbs/user/120847.xlsm
Was du im Code vielleicht anpassen musst, ist der im Code verwendete Tabellenname, in der alles passiert.
In deiner Bsp-Datei heißt die Tabelle = "Test".
Wenn in der Originaldatei die Tabelle anders heißt, musst du im Code überall "Test" gegen den richtigen Tabellennamen austauschen.
Hilfts?
Ciao
Thorsten
AW: ja, das ist möglich, aber...
04.04.2018 13:03:16
Thomas
Hi Thorsten,
ich bin begeistert.
Funktioniert absolut einwandfrei.
Vielen Dank für deine Mühen.
VG
Thomas
Anzeige
AW: ja, das ist möglich, aber...
04.04.2018 13:08:57
Oberschlumpf
Hi Thomas,
alles klar, gerne!
Kleine Bitte für die Zukunft:
Bei den nächsten Fragen, die du stellst, würde ich immer empfehlen, per Upload eine Bsp-Datei mitzuliefern.
Ich hab schon oft die Erfahrung gemacht, dass inklusive Bsp-Datei viel schneller eine Lösung gefunden wird, als wenn erst mal viel hin und her gefragt/geantwortet wird.
Ciao
Thorsten
AW: Automatisierte Prioritätenliste
04.04.2018 09:25:15
Thomas
Hi Bernd,
super vielen Dank.
Funktioniert (nach erstem Testen) einwandfrei.
Jetzt nur noch eine andere Frage.
Kann man die Dropdown Liste so einstellen, dass jeder Wert nur einmal vorkommen kann?
Also dass nicht zB zwei mal die Priorität "1" verwendet werden kann?
VG
Thomas
AW: Automatisierte Prioritätenliste
04.04.2018 10:39:15
Thomas
Hallo nochmal,
ich antworte jetzt einfach hier, da der Beitrag, aus dem ich den Code habe, von 2008 ist...
Ich habe den VBA Code für meine Tabelle angepasst und die automatische Sortierung hat auch geklappt.
Jetzt habe ich die Datei zum Testen an jemand anderen geschickt und dort kam beim Ändern der Priorisierung folgender Fehler:
Laufzeitfehler '1004':
Die Sort-Methode des Range-Objektes konnte nicht ausgeführt werden.
Der Debugger zeigt folgendes (fett markierte Zeilen):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZeileLast As Long
Const SpalteSort As Long = 5
Const lngZeile1 As Long = 8
If Target.Column = SpalteSort And Target.Row >= lngZeile1 And Target.Cells.Count = 1 Then
With Me
lngZeileLast = .Cells(.Rows.Count, SpalteSort).End(xlUp).Row
If lngZeileLast > lngZeile1 Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
        .Range(.Rows(lngZeile1), .Rows(lngZeileLast)).Sort Key1:=.Cells(lngZeile1, _
SpalteSort), order1:=xlAscending, Header:=xlNo
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End With
End If
End Sub

Schaffe es aktuell nicht dieses Problem zu beheben.
VG
Thomas
Anzeige
AW: Automatisierte Prioritätenliste
04.04.2018 12:55:48
Werner
Hallo Thoas,
ich kann den Fehler mit deinem Code nicht nachvollziehen - läuft durch und sortiert.
Wobei mir unklar ist, was das With Me - End With in diesem Zusammenhang soll? Es spielt sich doch sowieso alles auf dem Blatt ab, in welchem auch der Code steht.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZeileLast As Long
Const SpalteSort As Long = 5
Const lngZeile1 As Long = 8
If Target.Column = SpalteSort And Target.Row >= lngZeile1 And Target.Cells.Count = 1 Then
lngZeileLast = Cells(Rows.Count, SpalteSort).End(xlUp).Row
If lngZeileLast > lngZeile1 Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Range(Rows(lngZeile1), Rows(lngZeileLast)).Sort Key1:=Cells(lngZeile1, _
SpalteSort), order1:=xlAscending, Header:=xlNo
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End If
End Sub
Gruß Werner
Anzeige
Erklärung für...
04.04.2018 13:05:54
Oberschlumpf
Hi Werner
...Wobei mir unklar ist, was das With Me - End With in diesem Zusammenhang soll?...
Vielleicht ist die Antwort bei Excel gut - VBA bescheiden zu finden.
Thomas hatte den Code einfach übernommen, getestet + festgestellt: funktioniert so weit
Aber was genau der Code Zeile für Zeile macht, hat Thomas vielleicht (noch) nicht verstanden.
So zumindest würde ich die Übernahme von With Me/End With erklären.
Warum Code bei Testperson Fehler verursacht, weiß ich auch nicht.
Ciao
Thorsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige