Modul anlegen in anderer Datei

Bild

Betrifft: Modul anlegen in anderer Datei
von: Matthias Nelischer
Geschrieben am: 01.03.2005 09:47:39
Noch etwas: Ich habe ein Korrektur-Makro entworfen, das in einer geöffneten Datei einiges verändert. Jetzt möchte ich, dass mein Korrektur-Makro ein Makro in die geöffnete Datei einbindet. So soll zum Beispiel das Schließen der geöffneten Datei nur noch möglich sein, wenn eine bestimmte Zelle auf einem bestimmten Tabellenblatt ausgefüllt ist.
Wie erreiche ich das?
Vielen Dank,
MAtthes

Bild

Betrifft: AW: Modul anlegen in anderer Datei
von: Ralf (Schwabenland)
Geschrieben am: 01.03.2005 11:08:03
Hallo Matthes,
zunächst mal folgendes: Wenn du Code von einer in eine andere Mappe kopierst, wird sich sofort dein Antivirenprogramm melden (wenn es ein vernünftiges ist, bzw. wenn du überhaupt eines hast).
Der folgende Code muss in "DieseArbeitsmappe" deiner Ursprungsdatei rein. Er verhindert, dass die Mappe geschlossen wird, wenn nicht in A5 OK drin steht:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Sheets("Tabelle1").Range("A5") <> "OK" Then
    Cancel = True
  End If
End Sub

Du musst natürlich den Tabellenblattnamen und den Rangebereich anpassen.
In ein allgemeines Modul deiner Ursprungsmappe muss folgender Code:
Sub code_copy()
Dim i As Integer
Dim scode As String
With ThisWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
scode = .Lines(1, .CountOfLines)
End With
Workbooks("Test.xls").VBProject.VBComponents("DieseArbeitsmappe").CodeModule.AddFromString scode
End Sub
Der kopiert den Code deiner Ursprungsdatei von "DieseArbeitsmappe" in die andere offene Datei. Bei mir heißt die eben Test.xls. Musst du noch anpassen.
Hoffe es hilft.
Gruß
Ralf
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Modul anlegen in anderer Datei"