Ich versuche meine To-Do-Liste in Excel zu automatisieren, indem ich VBA verwende, um eine Eisenhower matrix zu erstellen.Automatisch eine Eisenhower-Matrix aus einer Aufgabenliste erstellen
Ich habe meine To-do-Liste in der folgenden Weise aufgebaut:
Task | Urgent | Important | done
T1 | x | x |
T2 | | x |
T3 | x | |
T4 | | |
Ich bin in der Lage sowohl meine Aufgabenliste zu filtern, auf die Dringlichkeit und importancy, und schließen Sie die Zeilen, die als „erledigt“ gekennzeichnet sind.
ich meine Matrix in einer solchen Art und Weise erstellt werden soll, dass es wie folgt aussieht:
__________|IMPORTANT|NOT IMPORTANT
URGENT | T1 | T3
----------|---------|--------------
NOT URGENT| T2 | T4
Ich weiß nicht, wie so meine VBA codieren, dass es meine gefilterten Zeilen auswählt, bestimmt, wie groß ist die Matrix und füllt sie entsprechend auf.
Ich versuche, die Anzahl der Zeilen mit der Eigenschaft range.count()
in Excel VBA zu zählen, aber ich kann nicht T2 und T4 ausgerichtet bekommen. Außerdem kopiert es jedes Mal den Kopf der Aufgabe.
Der Code, den ich bisher habe, ist wie folgt:
Sub populate_matrix()
Dim i As Integer
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="<>"
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="<>"
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
i = Range(Selection).Count
Selection.Copy
Sheets("work matrix").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("tasks").Select
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="<>"
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="="
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("work matrix").Select
Range("B" & i).Select
ActiveSheet.Paste
Sheets("tasks").Select
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="<>"
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="="
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("work matrix").Select
Range("c2").Select
ActiveSheet.Paste
Sheets("tasks").Select
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="="
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("work matrix").Select
Range("C" & i).Select
ActiveSheet.Paste
End Sub
Bitte fügen Sie, was Sie bin bis jetzt gemacht. Und Sie sollten "Range.Rows.Count" verwenden, wenn Sie versuchen, Zeilen zu zählen! ;) – R3uK