ich habe mir zwar bereits eine funktioniere "Routine (noch Bastelstatus)" erstellt, würde aber gerne horchen, ob das vlt. doch eleganter machbar ist.
In einem "Tool" zum Abgleich/Vergleich von zwei Tabellenblättern aus unterschiedlichen Dateien, kann es vorkommen, dass eines der gewählten Blätter eigenen Code enthält. Damit der in dem "Tool" nicht unvorhergesehenes auslöst, sollte der nicht mit kopiert werden.
Mein Ablauf speichert das zu holende Blatt temporär in einer .xlsx und sorgt somit beim erneuten Öffnen, dass dann kein Code mehr enthalten ist.
Diese Blatt kopiere ich dann in mein Tool. Funktioniert zwar, empfinde ich aber als "Oberbastelei"
Ich habe keinen anderen7zuverlässigeren Weg auf dem Schirm. Ihr vielleicht ?
Codeauszug:
Code: Alles auswählen
If Start.CodeKill_btn = True Then
Application.ScreenUpdating = False
wbAlt.Sheets("" & BL & "").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "tmp.xlsx"
Application.EnableEvents = False
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.EnableEvents = True
ActiveWorkbook.Close savechanges:=True
Application.DisplayAlerts = True
Dateipfad = ActiveWorkbook.Path
Dateiname = "\tmp.xlsx"
Workbooks.Open (QPath & Dateiname)
Set wbtmp = Workbooks(wstmp)
wbtmp.Sheets("" & BL & "").Copy Before:=ThisWorkbook.Sheets(1)
ThisWorkbook.Sheets("" & BL & "").Move After:=Sheets(Sheets.Count)
ActiveWindow.Zoom = 100
wbtmp.Close savechanges:=False
wbAlt.Close savechanges:=False
Kill ("tmp.xlsx")
ElseIf Start.CodeKill_btn = False Then
wbAlt.Sheets("" & BL & "").Copy Before:=ThisWorkbook.Sheets(1)
ThisWorkbook.Sheets("" & BL & "").Move After:=Sheets(Sheets.Count)
ActiveWindow.Zoom = 100
wbAlt.Close savechanges:=False
End If