Option Explicit
Sub Mein_Übertrag_Montagefirma()
Dim rngU As Range       'tatsächlich genutzter Bereich
Dim rngB As Range       'iteriere durch Spalte B
Dim rngT As Range       'zu kopierender Bereich
Dim loAnz As Long       'Zählen
Dim loLetzte As Long    'letzte befüllte Zeile
   'wer ausschaltet sollte auch wieder einschalten
   Application.ScreenUpdating = False
    
   With Worksheets("Montagefirma")
      .Range("A1:AA" & .Cells(.Rows.Count, 1).End(xlUp).Row).Clear
    End With
   With Worksheets("Terminplan")
      .Columns("A:B").Hidden = False
      'tatsächlich genutzter Bereich
      Set rngU = Range(.Cells(1), .Cells(.Cells.Find("*", _
         .Cells(1), -4123, 2, 1, 2, False).Row, _
         .Cells.Find("*", .Cells(1), -4123, 2, 2, 2, False).Column))
      For Each rngB In rngU.Columns("B").Cells
         'Abgleich
         If rngB.Text = .Range("F6").Text Then
            'Zählen
            loAnz = loAnz + 1
            'zu kopierender Bereich
            Set rngT = rngU.Rows(rngB.Row)
            Set rngT = rngT.Offset(, 2).Resize(, rngT.Columns.Count - 2)
            rngT.Copy
            With Worksheets("Montagefirma")
               If .Cells(1) = "" Then
                  loLetzte = 1
               Else
                  loLetzte = .Cells.Find("*", .Cells(1), -4123, 2, 1, 2, False).Row + 1
               End If
              .Cells(loLetzte, "A").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
              .Cells(loLetzte, "A").PasteSpecial Paste:=xlPasteFormats
            End With
         End If
      Next rngB
         
      Application.CutCopyMode = False
      .Columns("A:B").Hidden = True
         
   End With
   
   MsgBox "Es wurden " & loAnz & " Sätze übertragen."
   Application.ScreenUpdating = True
End Sub
	  
     |