Liebes VBA Forum,
ich habe folgendes Problem:
Ich möchte ein Klassenmodul aus einer Mappe (ThisWorkbook.DieseArbeitsmappe)
in eine andere Mappe (ActiveWorkbook.DieseArbeitsmappe) kopieren. Das funktioniert mit folgendem Code auch
ganz gut. Zumindest kann ich sehen, das der Code kopiert wird und sich auch in der Zielmappe befindet.
Aber wenn ich die Zielmappe dann irgendwann wieder öffne, ist der Code nicht mehr vorhanden.
Allerdings greift ein Teil des Codes, obwohl ich ihn wie gesagt nicht mehr sehen kann.
Welcher Teil das ist, werde ich gleich noch erläutern.
Folgender Code:
Sub Klassenmodul_kopieren()
Dim oSourceBook As Object
Dim sPfad As String
Dim sDatei As String
Dim int_Datensatz As Integer
Dim str_Mitarbeiter As String
Dim str_Pfad As String
Dim str_Datei As String
int_Datensatz = 7
Do While x < 135
str_Mitarbeiter = tbl_Honig.Cells(int_Datensatz, 2).Value
str_Pfad = "Z:\Honig\Anwesenheit\"
str_Datei = str_Pfad & str_Mitarbeiter & "\" & "Anwesend_" & str_Mitarbeiter & "_2018.xlsm"
If str_Datei <> "" Then
Set oSourceBook = Workbooks.Open(str_Datei, True)
Dim StrCode As String
With ThisWorkbook.VBProject.VBComponents _
("DieseArbeitsmappe").CodeModule
StrCode = .Lines(1, .CountOfLines)
End With
ActiveWorkbook.VBProject.VBComponents("DieseArbeitsmappe"). _
CodeModule.AddFromString StrCode
ActiveWorkbook.Protect ("181801818")
ActiveWorkbook.SaveAs str_Datei, FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close
End If
int_Datensatz = int_Datensatz + 1
Loop
Application.ScreenUpdating = True
Set oSourceBook = Nothing
End Sub
soll diesen Code
Private Sub Workbook_Open()
Dim lng_Zugriffzeile As Long
lng_Zugriffzeile = ThisWorkbook.Sheets("Zugriff").Cells(Rows.Count, 1).End(xlUp).Row + 1
ThisWorkbook.Worksheets("Zugriff").Range("A" & lng_Zugriffzeile) = Environ("username")
ThisWorkbook.Worksheets("Zugriff").Range("B" & lng_Zugriffzeile) = Application.UserName
ThisWorkbook.Worksheets("Zugriff").Range("C" & lng_Zugriffzeile) = Environ("computername")
ThisWorkbook.Worksheets("Zugriff").Range("D" & lng_Zugriffzeile) = Now()
ActiveWorkbook.Protect Structure:=True, Windows:=False 'Tabellen vor Löschen schützen ''Dies funktioniert''
End Sub
kopieren.
Das Schützen der Arbeitsmappe funktioniert , aber wie gesagt, sehen kann ich diese Zeile auch nicht. Komisch...
Kann mir bitte jemand sagen, was ich hier falsch mache?
Ich bin für jede Hilfe dankbar.
'Gruß Daniela
|