Blätter ohne Code kopieren

Bild

Betrifft: Blätter ohne Code kopieren
von: Markus Klement
Geschrieben am: 11.11.2003 14:29:46

Hallo,

ich möchte aus einer Datei 2-3 Tabellenblätter in eine neue Arbeitsmappe kopieren. Das ist ja kein Thema, aber wie bekomme ich die Codes aus den Tabellenblättern, so dass in der neuen Mappe keine Makros enthalten sind??

Könnt Ihr mir helfen?

Danke
Markus

Bild


Betrifft: AW: Blätter ohne Code kopieren
von: Russi
Geschrieben am: 11.11.2003 14:42:52

Hallo Markus!

Ich vermute, dass Du auf das manuelle Löschen der Module verzichten möchtest. Deshalb bleibt nur der Weg über VBA:

Public

Sub Russis_Blattkopie()
    sheets("Tabelle1").Activate
    Cells.Select
    Selection.Copy
    Workbooks.Add
    Selection.Paste
End Sub


Viele Grüße
Russi


Bild


Betrifft: Nein so klappt es nicht
von: Markus Klement
Geschrieben am: 11.11.2003 14:49:46

Hallo Russi,

erst einmal danke, aber bei der Anweisung Paste kommt eine Fehlermeldung und ausserdem wollte ich die Blätter so kopieren wie sie sind (nicht den Inhalt) und dann in der neuen Datei den Code rauslöschen. Die Inhalte zu kopieren ist ja nicht das Thema.

Gruß
Markus


Bild


Betrifft: AW: Nein so klappt es nicht
von: Russi
Geschrieben am: 11.11.2003 15:04:08

Hallo Markus!

Ich hab dazu was im Netz gefunden:


Sub modul_weg()
'löscht ohne Rückfrage Modul1
On Error Resume Next
    With ActiveWorkbook.VBProject
    .VBComponents.Remove .VBComponents("Modul1")
    End With
End 

Sub 
(http://people.freenet.de/a.seeberger/vbaseiten/031modulweg.html)


Bild


Betrifft: Nein so klappt es nicht
von: Markus Klement
Geschrieben am: 11.11.2003 15:18:04

Danke Russi,

aber das ist es auch nicht, denn dieser Code löscht ja nur die Module raus und wie ich geschrieben habe, geht es mir um den Code in den Blättern.

Gruß
Markus


Bild


Betrifft: AW: Nein so klappt es nicht
von: Andi_H
Geschrieben am: 11.11.2003 15:07:08

Hi Markus,

dieser Code löscht alle VB Komponenten raus.


Sub AlleVBEKomponentenEntfernen()
Dim VBkomp As VBComponent 
On Error Resume Next
For Each VBkomp In ThisWorkbook.VBProject.VBComponents
ThisWorkbook.VBProject.VBComponents.Remove VBkomp
Next VBkomp
End Sub


Gruß
Andi


Bild


Betrifft: AW: Nein so klappt es nicht
von: Markus Klement
Geschrieben am: 11.11.2003 15:17:03

Klappt auch nicht, bekomme die Fehlermeldung "Benutzerdefinierter Typ nicht definiert".

Woran liegt das??


Bild


Betrifft: AW: Nein so klappt es nicht
von: Andi_H
Geschrieben am: 11.11.2003 15:39:08

Hi Markus,

lösch mal die Variablendeklaration raus, dann gehts.


Sub AlleVBEKomponentenEntfernen()
On Error Resume Next
For Each VBkomp In ThisWorkbook.VBProject.VBComponents
ThisWorkbook.VBProject.VBComponents.Remove VBkomp
Next VBkomp
End Sub

gruß
Andi


Bild


Betrifft: Klappt immer noch nicht
von: Markus Klement
Geschrieben am: 11.11.2003 15:42:17

Hallo Andi,

jetzt kommt zwar keine Fehlermeldung, aber das Sub im Code des Tabellenblattes ist nach dem kopieren noch enthalten...

Gruß
Markus


Bild


Betrifft: AW: Klappt immer noch nicht
von: Andi_H
Geschrieben am: 11.11.2003 16:39:23

Sorry Markus, bin ich auch überfragt.
Schau mal in den Excel-Faqs - unter Excel/VBA VBE auswählen und dann Prozedur, evtl findest du hie rwas brauchbares.

Gruß
Andi


Bild


Betrifft: Kann mir keiner helfen??? (o.T.)
von: Markus Klement
Geschrieben am: 11.11.2003 15:30:32




Bild


Betrifft: AW: Kann mir keiner helfen??? (o.T.)
von: Carsten
Geschrieben am: 11.11.2003 15:47:21

Hallo Markus,

mit ein wenig googlen habe ich das hier gefunden.

https://www.herber.de/forum/archiv/216to220/t217693.htm

Versuchs mal.

Gruß
Carsten


Bild


Betrifft: Nein, das ist es nicht
von: Markus Klement
Geschrieben am: 11.11.2003 15:51:48

Danke Carsten,

aber das ist eben nicht was ich suche. Dabei wird die "Oberfläche" des Blattes kopiert und ich muß es für mehrere Blätter hintereinander machen und die Blattbezeichnungen neu definieren.

Wenn ich aber die Tabellenblätter komplett kopiere und dann "nur" den Code rauslösche, sollte es weniger aufwendig sein und das Makro schneller laufen.

Gruß
Markus


Bild


Betrifft: AW: Nein, das ist es nicht
von: Nepumuk
Geschrieben am: 11.11.2003 17:48:01

Hallo Markus,
so geht's:

https://www.herber.de/bbs/user/1883.xls

Gruß
Nepumuk


Bild


Betrifft: ????
von: Markus Klement
Geschrieben am: 12.11.2003 07:23:42

Hallo Nepumuk,

wenn ich auf den Link klicken öffnet sich nur ein leere Excel Seite???? Wie kannmir das helfen?

Gruß
Markus


Bild


Betrifft: AW: ????
von: Russi
Geschrieben am: 12.11.2003 07:46:15

Moin moin!

Wenn ich mich auch nochmal einmischen darf: In dieser Mappe ist ein Modul enthalten (drücke Alt + F11!)

Oder kopiere:

Public

Sub kopieren_ohne_Makro()
    Dim myWorksheet As Worksheet
    Sheets(Array("Tabelle1", "Tabelle2")).Copy
    With myWorkbook
        For Each myWorksheet In .Worksheets
            With .VBProject.VBComponents(myWorksheet.Name).CodeModule
                .DeleteLines 1, .CountOfLines
            End With
        Next
    End With
End Sub


Viele Grüße
Russi


Bild


Betrifft: AW: ????
von: Nepumuk
Geschrieben am: 12.11.2003 15:49:32

Hallo Markus,
im VBA-Editor findest du ein Modul, wie Russi richtig bemerkt hat, sowie eine Ereignisroutine im Klassenmodul "DieseArbeitsmappe" und ein Klassenmodul "clsApplication". Diese gehören zusammen. Wenn du willst, kann ich dir erklären wie es funktioniert.
Gruß
Nepumuk


Bild

Beiträge aus den Excel-Beispielen zum Thema " Blätter ohne Code kopieren"