Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Inhalt (Code) eines Worksheets in VBA löschen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Inhalt (Code) eines Worksheets in VBA löschen (7282 mal gelesen)
Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 23. Mai. 2008 13:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich möchte den Code eines Worksheets löschen. Geht das? Falls ja - wie?

Hintergrund: Ich kopiere ein Register mit Buttons und Grafiken in eine neue Mappe. Alle anderen Register der neuen Mappe werden gelöscht (neue Mappe enthält damit genau ein Register). Die Buttons werden gelöscht. Die neue Mappe wird gespeichert. So weit, so gut - die neue Mappe enthält (optisch) keine Schalter mehr.

Die CommandButtons (aus der Symbolleiste Steuerelemente) sind in der ursprünglichen Mappe erforderlich. Ihre Funktionalität wird in der neuen Mappe nicht mehr benötigt. Die neue Mappe ist eine Art "Archiv", das nur noch gelesen werden muss. (Die Option, ein pdf zu drucken, ist zwar schön - einem pdf kann ich allerdings keinen Pfad etc. zuweisen, also bleibt's bei Excel und VBA. 41 kB (mit Makros) bzw. 34 kB (ohne Makros) Dateigröße kann ich verkraften.)

Wenn ich den Code des Worksheets per Hand lösche, wird die Datei kleiner - und es liegen keine "toten" Makros herum. Je nach Einstellung bleibt außerdem die "Makros-Aktivieren"-Meldung aus.

Danke im Voraus,
Frederik

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2013
ADT 2005 bis 2013
Arcibem
System:
Windows NT, 2000, XP
Internet-Startseite:
http://www.archi.de

erstellt am: 23. Mai. 2008 13:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Paulchen 10 Unities + Antwort hilfreich

Hallo Frederik,
wäre DAS nicht was für Dich?

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 23. Mai. 2008 13:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Henning,

genau das, was ich brauche - und schnell bist Du!

Der Code ist mit Vorsicht zu behandeln, da er in einer Mappe auch sich selbst wegputzt. Das überrascht mich ein wenig, denn es erscheint die MsgBox "Fertig" (siehe link), obwohl es eigentlich kein Modul mehr gibt..? Faszinierend! Einzelschrittmodus is' nich - naja. Zum Testen am besten in eine neue, leere Mappe kopieren, da kann man nichts kaputt machen.

Diesen Teil habe ich übernommen:

Code:
Private Sub VBA_Code_entfernen(objWB As Workbook)

'löscht VBA-Code der Mappe objWB
'Quelle: http://vba1.de/vba/080vbe_clean.php
Dim obj As Object
Dim lgLine As Long

'Debug.Print objWB.FullName

    With objWB.VBProject.vbcomponents
        For Each obj In objWB.VBProject.vbcomponents
          'Type 100 = DieseArbeitsmappe und alle Tabellen
            If obj.Type = 100 Then
                With objWB.VBProject.vbcomponents(obj.Name).CodeModule
                    For lgLine = 1 To .CountOfLines
                        .DeleteLines 1
                    Next lgLine
                End With
            End If
        Next
    End With

End Sub


Danke, Danke, Danke - es läuft bei mir soweit und erfüllt seinen Zweck. Du weißt nicht zufällig, was genau es mit "Type 100" auf sich hat? Die Hilfe ist etwas dünn...

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2013
ADT 2005 bis 2013
Arcibem
System:
Windows NT, 2000, XP
Internet-Startseite:
http://www.archi.de

erstellt am: 23. Mai. 2008 14:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Paulchen 10 Unities + Antwort hilfreich

also Du kannst ja code direkt in die Arbeitsmappe packen, oder in Module in der Arbeitsmappe, oder in Klassenmodule, oder in Forms, und das sind dann ebend die verschiedenen Types (für solche Fragen suche ich immer gerne DA)

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 23. Mai. 2008 14:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Jupp,

nochmal danke, Dein link ist Klasse! Ich habe gegoogelt - und hier eine Übersicht gefunden (englisch).

Frederik

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz