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

Automatisiertes Aufgabenprotokoll

Automatisiertes Aufgabenprotokoll
01.03.2018 14:20:14
Hans
Hallo :)
ich habe folgendes Problem...ich möchte von einem Protokoll eine automatisierte Aufgabensammlung erstellen.
Der Code, der sich in der Tabelle befindet funktionierte bisher ganz gut, nun möchte ich aber in der Aufgabensammlung noch folgendes hinzufügen:
Zum einen die Spalte "Oberpunkt". Bisher wird nur im Arbeitsblatt "Protokoll" nach Art der information = A gesucht und dann die benötigten Informationen kopiert. Nun soll in der neuen Spalte Oberpunkt aber auch immer das in fett markierte Thema noch hinzugefügt werden. Es soll also immer das jeweils passende Thema zusätzlich zur Aufgabe in die Aufgabensammlung übernommen werden.
In der Mappe kann man die Lösung sehen, die angestrebt ist.
Die Mappe findet ihr hier:
https://www.herber.de/bbs/user/120139.xlsm
Kann mir da jemand helfen? Ich schaffe es einfach nicht den Code so anzupassen, dass das noch gemacht wird :(

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

Betreff
Datum
Anwender
Anzeige
AW: Automatisiertes Aufgabenprotokoll
02.03.2018 13:38:43
MCO
Hallo Hans!
Da war noch einiges im Argen:
Formatierungen, Zellzuweisungen, etc.
Den Code hab ich auf die schnelle etwas übersichtlicher gekürzt, indem ich die Tab-Bezüge ausgeklammert habe, wirst du sehen. Geht auch noch mehr, aber das hab ich jetzt gespart.
Probier es mal aus....
Gruß, MCO
Private Sub CommandButton1_Click()
' Filterung Aufgabensammlung bzw. Aufgabensammlung aus
Dim sht_AS As Worksheet
Dim sht_Dec As Worksheet
Set sht_AS = Worksheets("Aufgabensammlung")
Set sht_Dec = Worksheets("Decisions")
If sht_AS.FilterMode Then sht_AS.ShowAllData
' Die Variable lngLetzteAufgabensammlung wird als Typ Long deklariert
Dim lngLetzteAufgabensammlung As Long
Dim lngLetzteAufgabensammlungNeu As Long
' Die Variable lngLetzteMinutes wird als Typ Long deklariert
Dim lngLetzteMinutes As Long
' Die Variable lngLetzteTERMINPLAN wird als Typ Long deklariert
Dim lngLetzteTERMINPLAN As Long
' Die Variable lngLetzteDecisions wird als Typ Long deklariert
Dim lngLetzteDecisions As Long
Dim a As Range, b As Range, c As Range
' Die Laufvariablen i, j, k, l, x, y und z werden als Typ Long deklariert
Dim i As Long, j As Long, k As Long, l As Long, w As Long, x As Long, y As Long, z As Long
Application.ScreenUpdating = False
' Letzte belegte Zelle in Spalte E plus 1 raussuchen und merken
lngLetzteMinutes = Range("C" & Rows.Count).End(xlUp).Row + 1
'MsgBox (lngLetzteMinutes)
' Letzte belegte Zelle in Spalte E plus 1 raussuchen und merken
lngLetzteAufgabensammlung = sht_AS.Range("B" & Rows.Count).End(xlUp).Row + 1
'MsgBox (lngLetzteAufgabensammlung)
lngLetzteDecisions = sht_Dec.Range("C" & Rows.Count).End(xlUp).Row + 1
'MsgBox (lngLetzteDecisions)
'Fuchs 12.03.2013: Auflösung Filteransicht in Reiter "Aufgabensammlung"
j = lngLetzteAufgabensammlung
For Each cl In Range("E2:E" & lngLetzteMinutes).SpecialCells(xlCellTypeConstants)
z = 0
i = cl.Row
x = 0
Do  'überschrift finden
x = x - 1
Thema = cl.Offset(x, -2)
Loop Until cl.Offset(x, -2).Font.Bold = True
If Cells(i, 5) = "A" Then
For k = 8 To lngLetzteAufgabensammlung Step 1 'Durchsuchen des Aufgabensammlung, ob  _
Aufgabe bereits vorhanden'
If Cells(i, 3) = sht_AS.Cells(k, 4) Then
z = z + 1
End If
Next k
If z = 0 Then
sht_AS.Cells(lngLetzteAufgabensammlung, 2) = CDate(Cells(i, 2)) 'Datum'
sht_AS.Cells(lngLetzteAufgabensammlung, 3) = Thema 'Cells(i, 3) 'Aufgabe'
sht_AS.Cells(lngLetzteAufgabensammlung, 4) = Cells(i, 3) 'Stichwort'
'Fuchs 12.03.13: Text aufgabe aus Minutes übernehmen!
'sht_AS.Cells(lngLetzteAufgabensammlung - 1, 5).Copy sht_AS.Cells( _
lngLetzteAufgabensammlung, 5)'
sht_AS.Cells(lngLetzteAufgabensammlung, 5) = Cells(i, 5) 'Info/Aufgabe'
sht_AS.Cells(lngLetzteAufgabensammlung, 7) = Cells(i, 6) 'Verantwortlicher'
sht_AS.Cells(lngLetzteAufgabensammlung, 8) = CDate(Cells(i, 7)) 'Datum'
'sht_AS.Cells(lngLetzteAufgabensammlung, 9) = Cells(i, 8) 'Anlage'
sht_AS.Cells(lngLetzteAufgabensammlung, 9) = Cells(i, 9) 'Prio'
'sht_AS.Cells(lngLetzteAufgabensammlung - 1, 10).Copy sht_AS.Cells( _
lngLetzteAufgabensammlung, 10) 'Status'
With sht_AS.Cells(lngLetzteAufgabensammlung, 4)
If InStr(Cells(i, 3), "Hardware") > 0 Then .Value = "Hardware"
If InStr(Cells(i, 3), "Mechanik") > 0 Then .Value = "Mechanik"
If InStr(Cells(i, 3), "Software") > 0 Then .Value = "Software"
End With
' Hochsetzten Variablen
lngLetzteAufgabensammlung = lngLetzteAufgabensammlung + 1
'lngLetzteTERMINPLAN = lngLetzteTERMINPLAN + 1
y = y + 1
End If
ElseIf Cells(i, 5) = "D" Then
x = 0
For k = 8 To lngLetzteDecisions Step 1 'Durchsuchen des Decisions, ob Entscheidung  _
bereits vorhanden'
If Cells(i, 3) = sht_Dec.Cells(k, 3) Then
x = x + 1
End If
Next k
If x = 0 Then
sht_Dec.Cells(lngLetzteDecisions, 2) = Cells(6, 3) 'Datum'
sht_Dec.Cells(lngLetzteDecisions, 3) = Cells(i, 3) 'Text Entscheidung'
sht_Dec.Cells(lngLetzteDecisions, 4) = Cells(i, 4) 'Stichwort'
sht_Dec.Cells(lngLetzteDecisions, 5) = Cells(i, 5) 'Entscheidung'
sht_Dec.Cells(lngLetzteDecisions, 6) = Cells(8, 3) 'Verantwortlicher'
sht_Dec.Cells(lngLetzteDecisions, 8) = Cells(i, 8) 'Anlage'
lngLetzteDecisions = lngLetzteDecisions + 1
'lngLetzteTERMINPLAN = lngLetzteTERMINPLAN + 1
w = w + 1
End If
End If
Next cl
'Nach Einfügen der Aufgabensammlung-Punkte Anzahl der Zeilen zählen
lngLetzteAufgabensammlungNeu = sht_AS.Cells(Rows.Count, 3).End(xlUp).Row
'Druckbereich anpassen Aufgabensammlung'
sht_AS.PageSetup.PrintArea = Range(Cells(1, 1), Cells(lngLetzteAufgabensammlungNeu, 11)). _
Address
'Druckbereich anpassen Decisions'
sht_Dec.PageSetup.PrintArea = Range(Cells(1, 1), Cells(lngLetzteDecisions - 1, 7)).Address
'Rahmen setzen
sht_AS.Range("B2:I" & lngLetzteAufgabensammlungNeu).Borders.LineStyle = xlContinuous
sht_Dec.Range("B2:H" & lngLetzteDecisions - 1).Borders.LineStyle = xlContinuous
' Bildschirmaktualisierung EINschalten (nicht vergessen) 'wird am Ende der Prozedur  _
selbstständig eingeschaltet
Application.ScreenUpdating = True
' Meldung absetzten, dass Übertragung erfolgreich war.
If y = 0 And w = 0 Then
MsgBox "Alle Aufgaben und Entscheidungen bereits in der Aufgabensammlung vorhanden.  _
Keine Übertragung erfolgt.", vbExclamation, "Keine Übertragung"
Else
MsgBox "Übertragung zu 100 % erfolgt." & vbCrLf & "Es wurden " & vbCrLf & y & " Aufgabe( _
n) in Aufgabensammlung und " & vbCrLf & w & " Entscheidung(en) in Decisions übertragen", vbInformation, "Alles gut!"
End If
End Sub

Anzeige
AW: Automatisiertes Aufgabenprotokoll
05.03.2018 11:14:26
Hans
Entschuldige bitte die späte Antwort, war über das Wochenende verreist und hatte kaum Zugang zum Internet! Ich werde es direkt mal ausprobieren und berichten wie es lief :)
AW: Automatisiertes Aufgabenprotokoll
05.03.2018 11:41:08
Hans
Hi MCO,
ich bekomme leider folgende Fehlermeldung: "Laufzeitfehler '13: Typen unverträglich" und zwar an folgender Stelle:
sht_AS.Cells(lngLetzteAufgabensammlung, 8) = CDate(Cells(i, 7)) 'Datum'
AW: Automatisiertes Aufgabenprotokoll
06.03.2018 10:39:48
Hans
Habe eben festgestellt, dass der Code doch funktioniert...Ich war im "Aufgabensammlung" Arbeitsblatt als ich ihn ausgeführt habe. Im "Protokoll" Arbeitsblatt läuft er durch.
Allerdings nimmt er bereits vorhandene Aufgaben in der "Aufgabensammlung" auch doppelt auf. Gibt es einen Weg das zu verhindern?
Also, dass der Code erkennt, dass die Aufgabe bereits in der Aufgabensammlung liegt und damit nicht noch einmal aufgenommen werden muss?
Vielen Dank schon einmal für die Hilfe! Wenn das letzte klappen würde, wäre das ein super Bonus, ich könnte aber auch auf jeden Fall mit dem aktuellen Stand arbeiten :)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige