Wenn die Zeile auf erledigt gesetzt wurde, dann soll die Zeile in das andere Tabellenblatt "Archiv" verschoben werden. Am Code wurde nichts geändert, die datei ansich kopiert und die möglichen Bezüge zur alten Datei entfernt. Wo könnte das Problem sein?
On Error Resume Next
If Not Intersect(Target, Rows(10).Find("STATUS").EntireColumn) Is Nothing Then 'WENN aktuelle Zelle (Target) keine Übereinstimmung mit der Auswahl (Spalte W) hat -> STOP
If Target.Count > 1 Then Exit Sub 'WENN mehr als eine Zelle ausgewählt -> STOP
If Target = "erledigt" Then 'WENN Auswahl "erledigt" ist, DANN weiter
If Target.Offset(0, 11) = "X" Then 'WENN 11 Spalten rechts neben der aktuellen Zelle (also in Spalte AH) ein "X" steht
'd.h. es handelt sich um Hauptzeile des Projekts, DANN
projID = Worksheets("Projektplan").Cells(Target.Row, 3).Value 'Projekt ID des Projekts aus Spalte C lesen
j = 11 'Suche Zeile für Zeile nach Kopien des Projekts bzw. beteiligten Fachbereichen anhand der Projekt ID
Do
j = j + 1
If Cells(j, 3).Value = projID And Target.Row > j Then 'WENN Projekt ID in Zeile j und Spalte C gefunden UND Zeile j nicht die Zeile der aktuellen Zelle ist
'DANN ist das Projekt noch bei einem beteiligten Fachbereich aufgeführt -> Message Box
'HINWEIS: Es müssen erst alle beteiligten Fachbereiche auf "erledigt" gesetzt sein, bevor Hauptzeile "erledigt" werden kann
MsgBox "Eine Kopie dieses Projekts ist in Zeile " & j & " enthalten. Setzen Sie die Hauptzeile (Zeile: " & Target.Row & ") erst zu 'erledigt', wenn alle Kopien 'erledigt' sind, da sonst die Zellbezüge verloren gehen."
Exit Do
ElseIf Cells(j, 3).Value = "" And Cells(j + 1, 3).Value = "" Then 'ANSONSTEN WENN nächste und übernächste Zelle (j + 1 und j + 2) leer sind, so ist man am Ende
'der Projektliste angelangt und es gibt offenbar keine beteiligten Fachbereiche zu diesem Projekt (außer der Hauptverantwortliche)
'MsgBox "Hauptzeile ohne Kopien!"
Call Archive(Target) 'DANN archiviere das Projekt mit der Sub-Function "Archive" (siehe unten)
Exit Do
End If
Loop
Else 'WENN es sich nicht um die Hauptzeile des Projekts handelt
'MsgBox "Keine Hauptzeile!"
Call Archive(Target) 'DANN archiviere das Projekt mit der Sub-Function "Archive" (siehe unten)
End If
End If
Sub Archive(Target As Range)
'MsgBox "Checkpoint: Archive"
i = 11
Do
i = i + 1
If Target.Offset(0, -21) = Worksheets("Archiv").Cells(i, 2).Value And Worksheets("Archiv").Cells(i + 1, 2).Value > Target.Offset(0, -21) Then
Worksheets("Archiv").Rows(i + 1).Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromRightOrBelow
Exit Do
ElseIf Worksheets("Archiv").Cells(i + 1, 2).Value = "" And Worksheets("Archiv").Cells(i + 2, 2).Value = "" Then
Worksheets("Archiv").Rows(i + 1).Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromRightOrBelow
MsgBox " Keine übereinstimmende Gruppe gefunden !"
Exit Do
End If
Loop
Target.Rows(1).EntireRow.Copy
Worksheets("Archiv").Rows(i + 1).PasteSpecial Paste:=xlValues ', Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Beim Verschieben ins Archiv gehen Bezüge verloren -> daher "Paste:=xlValues" um nur Werte zu kopieren
Target.Rows(1).EntireRow.Delete Shift:=xlUp
MsgBox " Projekt wird im Archiv in Zeile " & i + 1 & " eingefügt."
End Sub