|  
                                             
	Hallo Thomas, 
	Lass den Kopf nicht hängen. Ja es ist ärgerlich, wenn man so einen Planungsfehler erst spät entdeckt und viel nacharbeiten muss. Aber das kommt vor. 
	Ich verstehe dich so, dass das jede Zelle in 'Projekte' in den Spalten F und G ein JA/Nein-Dropdownfeld ist. 
	Wählt man 'Ja' in Spalte F, wird das Makro 'Kundenauftrag' gestartet. 
	Wählt man 'Ja' in Spalte G, wird das Makro 'Auftragsdaten' gestartet. 
	Wird in einer beliebigen Zeile in Spalte 41 in 'Projekte' ein 'ü' eingetragen (Häkchen), so wird die gesamte Zeile kopiert und unter die letzte Zeile im Archiv kopiert. 
	Anschließend wird die kopierte Zeile gelöscht. Die darunter stehenden Zeilen rutschen entsprechend hoch. 
	Ist das so richtig? Dann sollte dieser VBA-Code im Modul von 'Projekte' alles erledigen. 
	Bitte teste und melde dich bei Bedarf. 
	Viele Grüße von Heiko 
	  
Private Sub Worksheet_Change(ByVal Target As Range)
  'Hier die Parameter eintragen
  Const c_lngSpNrAuftrAbgeschl As Long = 41  'Spaltennummer des Auftrag-abgeschlossen-Häkchens
  Const c_strArchiv As String = "Archiv"    'Blattname des Archives
  Const c_lngZeileMaxArchiv As Long = 65536 'maximale Zeilennummer des Archives
  
  Dim lngZeileArchiv As Long
  Dim wksArchiv As Excel.Worksheet
  
  With Target.Cells
    If .Column = 6 Then    'Spalte F
      If ActiveCell.Value = "Ja" Then
        'Ja in Spalte F gewählt
        Call Kundenauftrag
      End If
    End If
    If .Column = 7 Then    'Spalte G
      If ActiveCell.Value = "Ja" Then
        'Ja in Spalte G gewählt
        Call Auftragsdaten
      End If
    End If
    If Len(.Address) = 4 Then
      If .Column = c_lngSpNrAuftrAbgeschl And .Value = "ü" Then
        'Auftrag abgeschlossen
        Set wksArchiv = ThisWorkbook.Sheets(c_strArchiv)
        lngZeileArchiv = wksArchiv.Cells(wksArchiv.Rows.Count, 1).End(xlUp).Row + 1
        If lngZeileArchiv = c_lngZeileMaxArchiv Then
          MsgBox "Das Archiv ist voll!", vbCritical, "F E H L E R !"
        Else
          .EntireRow.Copy Destination:=wksArchiv.Rows(lngZeileArchiv)
          .EntireRow.Delete xlShiftUp
        End If
        Set wksArchiv = Nothing
      End If
    End If
  End With
End Sub
	  
     |