|  
                                             
	Hallo, 
	ja den Public-Modifier sollte man der Übersichtlichkeit halber besser setzen, ist hier aber nicht kriegsentsch., da dies der der Default-Modifier bei normalen Sub-Procs in VBA ist, kann also auch weggelassen werden... 
	Problem ist vielmehr, Du sprichst die Tabelle1 in Deiner PERSONAL.XLSB an, damit sprichst Du eben das Tabellenblatt in Deiner PERSONAL.XLSB an, nicht das Deiner jeweiligen aktiven Arbeitsmappe, wenn Du über den CodeName gehen willst (der TabBlatt-Name würde auch gehen) mußt Du das ActiveWorkbook-Objekt referenzieren: 
Option Explicit
Public Sub MICHID()
  Dim obWorksheet As Worksheet
  Dim Bereich As Range
  Set obWorksheet = GetSheetByCodeName("Tabelle1")
  If Not obWorksheet Is Nothing Then
      Set Bereich = obWorksheet.UsedRange
      Bereich.AutoFilter Field:=1, Criteria1:="MO367"
      Set Bereich = Nothing
      Set obWorksheet = Nothing
  End If
End Sub
Private Function GetSheetByCodeName(ByVal pvstrName As String) As Object
Dim objSheet As Object
For Each objSheet In ActiveWorkbook.Sheets
    If objSheet.CodeName = pvstrName Then _
      Set GetSheetByCodeName = objSheet: Exit For
Next
Set objSheet = Nothing
End Function
	Aufruf Deiner Sub-Proc MICHID per Code dann über die Application.Run-Methode aus Deiner jeweil. Mappe....oder händisch über den Makro-Dialog. 
	Gruß, 
     |