Thema Datum  Von Nutzer Rating
Antwort
Rot Klassenmodul wird kopiert aber nicht gespeichert
28.08.2018 09:51:54 Daniela
NotSolved
28.08.2018 10:09:19 Daniela
NotSolved

Ansicht des Beitrags:
Von:
Daniela
Datum:
28.08.2018 09:51:54
Views:
820
Rating: Antwort:
  Ja
Thema:
Klassenmodul wird kopiert aber nicht gespeichert

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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Klassenmodul wird kopiert aber nicht gespeichert
28.08.2018 09:51:54 Daniela
NotSolved
28.08.2018 10:09:19 Daniela
NotSolved