Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

Aufgabenliste autom. sortieren und neue Aufgaben anlegen

Aufgabenliste autom. sortieren und neue Aufgaben anlegen
27.10.2023 11:08:07
Neuling27
Hallo zusammen,

ich bin noch ein absoluter Anfänger was das Thema VBA angeht und wende mich daher an euch Profis.

Ich habe bei mir auf der Arbeit eine Aufgabenliste erstellt, um eine Übersicht über alle Themen von den Mitarbeitern zu bekommen. Gerne würde ich mit VBA die Liste etwas aufpeppen, damit ich nicht mit soviel Strg+X und Strg+V arbeiten muss. Öfters verliere ich dabei auch das "Format", da mehrere Zellen verbunden sind und beim einfügen die Zellen alle wieder getrennt werden. Mit der Zeit ist das sehr nervenaufreibend.
Anbei meine Dummy-Arbeitsmappe: https://www.herber.de/bbs/user/163846.xlsm

Zur Programmierung: 1) Ich kopiere mir derzeit die Aufgabenkarte (Vorlage Blanko), füge sie in die Spalte von dem jeweiligen Mitarbeiter ein und fülle die Aufgabe mit Infos. Hier bräuchte ich ein Makro das automatisch in die erste leere Zeile vom gewünschten Mitarbeiter springt und die Vorlage einfügt.
2) Jede Aufgabe hat eine Fortschrittsangabe. Bei 100% würde ich gerne die Aufgabe automatisch in die Spalte "abgeschlossene Tasks" ans untere Ende verschieben lassen.
3) Die Lücken zwischen den übriggebliebenen Aufgabenkarten soll entfernt werden. Sprich die übriggebliebenen Aufgabenkarten sollen nach oben rutschen.

Ich würde mich riesig freuen, wenn jemand mir helfen könnte.

Grüße und ein schönes Wochenende
der Neuling

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufgabenliste autom. sortieren und neue Aufgaben anlegen
27.10.2023 11:32:11
Yal
Hallo Nils,

wenn Du ganz frisch bei dem Thema bist, vielleicht kann ich dich von schlechten Gewohnheiten wegbringen, bevor diese sich bei Dir als "normal" einbrennen:
trenne die Datenhaltung und die Präsentation auseinander: Excel leitet sehr gern, die beide zu vermischen. So auch deine Datei. Es ist aber wesentlich leichter, eine einfache Liste zu speichern und aktuell zu halten, dann daraus eine schöne, separate Präsentation zu machen, als Daten anzufassen, wenn diese wild über den Bildschirm verteilt sind.

Eigentlich wäre deine Aufgaben: liste alle Information in eine Liste (als Tabelle, Menü "Einfügen", "Tabelle"), wo jede Spalte nur eine Info hat: Mitarbeiter, Due Date, Fertigungsgrad, usw.
Dann eine Makro aufstellen (Try&Error), die aus der Liste eine komplett neue Bericht (der alte kann bestehen bleiben) herstellt.

Vorteil: deine Liste ist sortierbar, filterbar, schnell erweiterbar.
Möchtest Du etwas an der Präsentation ändern, musst Du nur den Prozess der Berichterstattung anfassen. Null Rücksicht auf was vorher da war. 5 neue Version in eine Stunde? kein Problem. Due Date über Progress? kein Problem. Oder doch nicht, bitte zurückdrehen. Kein Problem.

Selber damit anfangen? kein Problem. Aktion unter laufenden Makro-Rekorder machen, Code anschauen, anpassen. Probieren (in dem Fall machst Du nicht kaputt, weil alles auf eine neue Blatt).
Vielleicht wirst Du dabei entdecken, dass den schönen Bericht gar nicht brauchst. Auf alle Fälle bist Du mit der Liste sofort arbeitsfähig und die Weiterentwicklung laufen parallel.

Wenn es auf dem Weg zum Ergebnis hier und da klemmt, einfach einen neuen Post im Forum. Für punktuelle Unterstützung bekommst Du immer schneller Hilfe, als bei einer kompletten Auftragsprogrammierung.

Viel Erfolg

VG
Yal

Anzeige
AW: Aufgabenliste autom. sortieren und neue Aufgaben anlegen
27.10.2023 12:31:53
Neuling27
Hallo Yal,

vielen Dank für deine Rückmeldung. Der Punkt ist, dass ich gerade keine "einfache Liste" möchte, da die Übersicht nicht so schön ist. Es ist natürlich ein persönliches Empfinden und ich kann mir auch gut vorstellen, dass die Programmierung in so einer Liste deutlich einfacher ist. Bei mir werden pro Mitarbeiter nur 4-5 Aufgabenkarten verteilt, daher würde ich gerne bei meiner "Präsentation" bleiben.

Die Aufgabenerstellung (Punkt 1) konnte ich bereits mit geringer Anpassung der Aufgabenkarte lösen :
Bei der Aufgabenkarte im Beschreibungsfeld sind immer nur noch die Zeilen untereinander verbunden. Nicht mehr der ganze Block und in jeder Zeile steht ein Platzhalter mit '- (damit die Zeile nicht leer ist).



Sub MA1_neue_Aufgabe()

Dim last As Integer
'Vorlage kopieren
Range("U17:W25").Select
Selection.Copy

'Variable zur letzten vollen Zelle +1 zuweisen (erste leere Zelle)
last = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(last, 1).Select

'Vorlage einfügen
ActiveSheet.Paste

End Sub
Anzeige
AW: Aufgabenliste autom. sortieren und neue Aufgaben anlegen
27.10.2023 12:46:28
Yal
Hallo Nils,

vielleicht habe ich die Kern-Idee nicht aus wesentlich reduziert:
Du hättest die einfache Liste (stabil, leichte Handhabung der Daten, "model")
Und die schöne Darstellung ("View") per Knopfdruck (aka Makro, "Controller") .

Meinerseits ist es kein pesönliches Empfinden, sondern aus eigener Erfahrung das Erkenntnis, dass das Pattern Model-View-Controller (kommt nicht von mir, kannste googeln) das einzige was einem auf lange Sicht richtig hilft. Am Ende machst Du es, wie Du es möchtest. Aber in viele Jahren wirst Du dich an mich erinnern.

VG
Yal
Anzeige
AW: Aufgabenliste autom. sortieren und neue Aufgaben anlegen
27.10.2023 13:09:41
daniel
Prinzipiell sollte es kein großer Aufwand sein, ein Makro zu schreiben, dass eine Liste in die von dir gewünschte Darstellungsform transferiert.
Listen sind halt in der Regel leichter zu bearbeiten.
Gruß Daniel
Mir ist langweilig :-)
27.10.2023 15:11:14
Yal
Es passiert gerade nicht viel auf dem Forum, deswegen komme ich darauf, eine Lösung im besagten Model-View-Controller Pattern zu herstellen.

Der gesamte Code (in Modul1):
Sub Übertragen()

Dim LO As ListObject
Dim LR As ListRow
Dim MA As Long
Dim Zelle1 As Range

With Worksheets("Aufgabenverteilung")
'Bereinigen
.Range("A2:S3000").UnMerge
.Range("A2:C300,E2:G300,I2:K300,M2:O300,Q2:S300").Clear
'Sortieren nach Datum
tblDaten_sortieren
'Übertragen
Set LO = ActiveWorkbook.Worksheets("Daten").ListObjects("tblDaten")
For Each LR In LO.ListRows
MA = CLng(Trim(Split(LR.Range(1).Value)(1))) 'default
If LR.Range(5).Value = 100 Then MA = 5 'abgeschlossene Task
Set Zelle1 = .Cells(Rows.Count, (MA - 1) * 4 + 1).End(xlUp).Offset(1, 0)
.Range("Vorlage").Copy Zelle1
Zelle1.Value = "Task: " & LR.Range(2).Value 'Feld Task (2te SPalte von tblDaten)
Zelle1.Offset(1, 0).Value = "Description: " & LR.Range(3) 'Description, 3te Spalte
Zelle1.Offset(7).Offset(, 1).Value = LR.Range(5) ' Progress
Zelle1.Offset(7).Offset(, 2).Value = LR.Range(1) 'Mitarbeiter
Zelle1.Offset(8).Offset(, 1).Value = LR.Range(4) 'Due Date
Next
End With
End Sub

Sub tblDaten_sortieren()
With ActiveWorkbook.Worksheets("Daten").ListObjects("tblDaten").Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("tblDaten[[#All],[Due Date]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub


Änderungen:
Die Vorlage habe ich als "Vorlage" benannt (benannte Bereich)
Es gibt ein Blatt Daten, darin eine Tabelle (Menü "Einfügen", "Tabelle") mit Name "tblDaten". Im MVC-Pattern das "Model".
Darin werde alle Daten erfasst, geändert. Die kann beliebig sortieren, filtern, ausdrucken, kopieren, usw.

Der Aufruf (Alt+F8) der Makro "Übertrage" (der "Controller") löscht -fast- alles auf dem Blatt "Aufgabenverteilung" ("View") und stelle sie komplett neu. Man könnte noch eine Schaltfläche einrichten.
Jetzt verbringe ein paar Tage mit "deiner" Lösung, dann ein paar Tage mit diese. Dann Fazit ziehen.

Die Logik in der "Controller" (Makro "Übertrage") ist soweit nachvollziebar, dass Anpassungen selber vorgenommen werden können. Da in der "Vorlage" verbundene Zellen sind, muss man mit dem komischen .Offset(Zeile).Offset(,Spalte) arbeiten.

https://www.herber.de/bbs/user/163855.xlsm

VG
Yal

Anzeige
AW: Aufgabenliste autom. sortieren und neue Aufgaben anlegen
27.10.2023 12:27:19
daniel
Hi
hier mal die drei Makros, die du brauchst:

Sub Abgeschlossene_Aufgaben_Verschieben()

Dim Zelle As Range
Do
Set Zelle = Range("A:O").Find(what:="100", lookat:=xlWhole, LookIn:=xlFormulas)
If Zelle Is Nothing Then Exit Do
Zelle.Offset(-7, -1).Resize(9, 3).Cut Destination:=Cells(Rows.Count, "Q").End(xlUp).Offset(1, 0)
Loop
End Sub


Sub Leerstellen_Schließen()

Dim ar As Range, col As Long

For col = 1 To 13 Step 4
For Each ar In Columns(col).SpecialCells(xlCellTypeBlanks).Areas
If ar.Columns.Count = 1 Then ar.Resize(, 3).Delete shift:=xlUp
Next
Next
End Sub


Sub Aufgabe_Hinzufügen()

Dim Zelle As Range
With Range("U17:W25")
Set Zelle = Rows(1).Find(what:=.Cells(8, 3), lookat:=xlWhole)
If Zelle Is Nothing Or .Cells(8, 3).Value = "" Then
.Cells(8, 3).Select
MsgBox "Bitte Mitarbeiter auswählen"
Else
.Copy Cells(Rows.Count, Zelle.Column).End(xlUp).Offset(1, 0)
.Cells(1, 1).Value = "Task:"
.Cells(2, 1).Value = "Discription:"
.Cells(8, 3).Value = ""
.Cells(9, 2).Value = ""
End If
End With
End Sub


Die Aufgabe wird immer dem Mitarbeiter hinzugefügt, den du in der Vorlage ausgewählt hast.
Dh der Text muss der selbe sein wie in der überschriftenZeile, damit der richtige Mitarbeiter gefunden werden kann.
Du kannst die Aufgabe schon in der Vorlage eintragen, nach dem Verschieben wird die Vorlage wieder zurückgesetzt.
Solltest du an dem Blatt was ändern (größe der Vorlage, weitere Mitarbeiter) muss der Code ggf angepasst werden.

Gruß Daniel
Anzeige
AW: Aufgabenliste autom. sortieren und neue Aufgaben anlegen
27.10.2023 12:44:14
Neuling27
Hallo Daniel,

du bist ein Programmier-König !!! Tausend Dank und Mega das es so schnell geklappt hat!

Grüße

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige