aus einer Quelldatei kopiere ich das Tabellenblatt "Mitglieder", in dem drei Makros hinterlegt sind, die bei Ausführung nach ID, Namen oder Datum sortieren.
In der Quelldatei klappt das perfekt.
Öffne ich nun die neue Datei, in der NUR das Tabellenblatt "Mitglieder" enthält und führe dann dort eines der Makros aus,
öffnet sich immer die Quelldatei und er sortiert dort das Blatt "Mitglieder".
Hier der Code mit dem ich kopiere:
Sub Kassenbuch_Mitglieder_ex()
'Call unprotect
Dim Pfad$
Dim name As String
Dim wb As Workbook
Dim wbkAlt As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Pfad = ThisWorkbook.Path 'Pfad der gerade geöffneten Datei
'MsgBox Pfad
name = ("\Mitglieder_Export_" & Format(Date, "YYYYMMDD") & "_" & Format(Time, "hhmmss") & ". _
xlsm") 'der zu nutzende Name des Export
'MsgBox Name
If MsgBox("Export der Mitgliederliste starten?", vbOKCancel) = vbOK Then
'MsgBox "OK"
If Dir(ThisWorkbook.Path & "\Mitglieder\", vbDirectory) = "" Then MkDir (ThisWorkbook.Path & _
_
_
"\Mitglieder\")
Set wbkAlt = ActiveWorkbook
Sheets("Mitglieder").Visible = True
wbkAlt.Worksheets("Mitglieder").Copy 'Neue Datei erstellen und Tabellenblatt reinkopieren
Set wb = ActiveWorkbook 'Neue Datei der Variablen zuweisen
wb.SaveAs Filename:=Pfad & "\Mitglieder" & name, FileFormat:=xlOpenXMLWorkbookMacroEnabled ' _
_
_
Neue Datei speichern
'MsgBox Pfad & Name
wb.Close savechanges = True
Sheets("Mitglieder").Visible = False
Application.DisplayAlerts = True
Application.ScreenUpdating = False
Else
MsgBox "Export abgebrochen!"
Exit Sub
End If
'Call protect
End Sub
Und hier der Code, der zum Sortieren im Blatt Mitglieder hinterlegt ist:
Sub Mitglieder_Sort_ID()
Dim lngLR As Long
With ThisWorkbook.Sheets("Mitglieder")
lngLR = .Cells(.Rows.Count, 1).End(xlUp).Row
'Zeile , Spalte
.Cells(3, 1).Resize(lngLR - 1, 21).Sort _
Key1:=.Range("A3"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
End Sub