Tabellenblatt kopieren ohne Makro

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Tabellenblatt kopieren ohne Makro von: Benny
Geschrieben am: 13.04.2005 09:05:20

Hey Leute,
ich möchte ein Tabellenblatt aus einer Mappe in eine neue Mappe kopieren, ohne das die dort integrierten Programmierzeilen (z.B. Worksheet_Change) des Tabellenblattes mit übernommen werden, weil sonst die integrierten Verknüpfungen Fehlermeldungen verursachen.

Würde mich über eine unkomplizierte Lösung sehr freuen.

Gruß
Benny

Bild


Betrifft: AW: Tabellenblatt kopieren ohne Makro von: roland_k
Geschrieben am: 13.04.2005 09:24:54

hi benny
ich wuerde das mit ner vorlage machen ....diese ohne den code
dann per makro kopieren und umbenennen

ist nur ein gedankengang warte mal ab was die profis hier zeigen
drum habe frage als noch offen deklariert

ist aber moeglich dass mein vorschlag gar nicht gut ist :-.(

gruesse
roland_k


Bild


Betrifft: AW: Tabellenblatt kopieren ohne Makro von: Rolf Beißner
Geschrieben am: 13.04.2005 09:27:29

Hallo Benny,

damit kannst du Code in Klassenmodulen löschen

fG
Rolf

Sub code_in_klassenmodulen_löschen()
    Dim vb As Object
    Dim m As Object
    Dim n As Integer, i As Integer
    Dim rc As Variant
    Set vb = ActiveWorkbook.VBProject.VBComponents
    For Each m In vb
      If m.Type = 100 Then
        n = m.CodeModule.CountOfLines
        If n > 0 Then
            rc = MsgBox("Soll der Code im Klassenmodul von   " _
                            & m.Name & "   wirklich gelöscht werden?", 4)
            If rc <> 7 Then
                For i = n To 1 Step -1
                   m.CodeModule.DeleteLines i
                Next
            End If
        End If
      End If
    Next
End Sub



Bild


Betrifft: AW: Tabellenblatt kopieren ohne Makro von: Benny
Geschrieben am: 14.04.2005 12:14:22

Hallo Rolf,

leider kann ich mir nicht vorstellen wie ich mit deiner Sub umgehen soll. Wo müsste ich Sie einbinden damit sie auf den u.a. Pfad verzweigt?

Die Programmierzeilen die ich meine stehen unter "Microsoft Excel Objekte" und dort in "Tabelle (Beschaffungsanlage)" also nicht unter Klassenmodule.

Vielen Dank für deine Mühe


Gruß
Benny


Bild


Betrifft: AW: Tabellenblatt kopieren ohne Makro von: Rolf Beißner
Geschrieben am: 14.04.2005 13:11:52

Hallo Benny,

du legst ein neues Modul in einer beliebigen
Arbeitsmappe an + kopierst den Code hinein.

Dann aktivierst du eine TESTMAPPE die den
Ereigniscode deines Tabellenblatts enthält.

Dann startest du das Makro "code_in_klassenmodulen_löschen"
und schaust dir an, was passiert.

fG
Rolf


Bild


Betrifft: AW: Tabellenblatt kopieren ohne Makro von: Benny
Geschrieben am: 14.04.2005 14:16:25

Hallo Rolf,

echt super dein Makro funktioniert auch ohne Probleme.
Dennoch eine kurze Frage.

Ich kopiere das "Tabellenblatt (Beschaffungsanlage)" in eine separate Mappe (Datei), nachdem das Tabellenblatt dort angekommen ist sollte der Ereigniscode dort gelöscht werden. Das heißt das ich das Makro "code_in_klassenmodulen_löschen" mit kopieren muss um es in der Zieldatei vor dem späteren Save und Close ausführen lasse.

Würdest du mir bitte noch einmal kurz erläutern wie das geht?

Gruß
Benny


Bild


Betrifft: AW: Tabellenblatt kopieren ohne Makro von: Rolf Beißner
Geschrieben am: 14.04.2005 14:42:05

Hallo Benny,

in welcher Mappe der Löschcode steht, ist unmassgeblich.
Entscheidend ist, dass die Mappe mit dem zu löschenden Code aktiviert ist.

fG
Rolf


Bild


Betrifft: AW: Tabellenblatt kopieren ohne Makro von: Benny
Geschrieben am: 14.04.2005 14:57:39

Hallo Rolf,

sorry aber wahrscheinlich habe ich mich falsch ausgedrückt.

Wie kopiere ich das Makro "code_in_klassenmodulen_löschen" von der eigentlichen Datei in die Zielatei (die ja erst noch durch das Makro erstellt wird), um es dort nachdem die Zieldatei erstellt wurde, ausführen zu lassen.
Des weiteren wie kann ich ein Makro über einen Makrobefehl ausführen lassen?

Gruß
Benny


Bild


Betrifft: Makro kopieren von: Rolf Beißner
Geschrieben am: 14.04.2005 15:34:26

Hallo Benny,

so einfach kopieren iss nich.

Du musst das Modul exportieren und in die Zieldatei importieren.
Hier mal ein Beispiel zum grundsätzlichen Vorgehen.

Ein Makro startest du mir dem Run-Befehl (s.ganz unten).

fG
Rolf

'Modul exportieren
Sub modul_exportieren()
   Dim mdl As Object
   Dim wbName As String, mdlName As String
    
    
   wbName = ThisWorkbook.Path & "\Quellmappe.xls" 
   mdlName = "Test_modul"
   
   Workbooks.Open wbName
   
   Set mdl = ActiveWorkbook.VBProject.VBComponents(mdlName)
   mdl.Export ThisWorkbook.Path & "\" & mdlName & ".bas"
        
   ActiveWorkbook.Close savechanges:=false
End Sub


'Modul importieren
Sub ImportModule()
   Dim mdl As Object
   Dim wbName As String, mdlName As String
    
    
   wbName = ThisWorkbook.Path & "\Zielmappe.xls"
   mdlName = "Test_modul"
   
   Workbooks.Open wbName
   ActiveWorkbook.VBProject.VBComponents.Import _
      ThisWorkbook.Path & "\" & mdlName & ".bas"
   ActiveWorkbook.Close savechanges:=True
End Sub


Sub makro_starten()
    Application.Run "code_in_klassenmodulen_löschen"
End Sub



Bild


Betrifft: AW: Makro kopieren von: Benny
Geschrieben am: 14.04.2005 15:37:28

Hallo Rolf,

noch einmal vielen Dank für deine Mühe. Leider ist es mir heute und morgen nicht mehr möglich es auszuprobieren. Ich werde frühestens am Montag Mittag dazu kommen. Selbstverständlich halte ich dich auf dem laufenden.

Schönes Wochenende


Gruß
Benny


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Tabellenblatt kopieren ohne Makro"