Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA-Code löschen

VBA-Code löschen
29.06.2005 16:20:30
Sevket
Hallo,
ich benutze in einem Excel-Dokument die Objekte "ThisWorkbook" und "Sheet1" zur ereignisgesteuerten Anpassung meines Dokumentes. Nun möchte ich ereignisgesteuert das Dokument unter einem anderen Namen abspeichern. Vorher möchte ich aber alle controls löschen und sämlichen VBA-Code entfernen. Das Abspeichern unter einem anderen Namen nach Entfernen der controls funktioniert soweit ganz gut. Nur wenn ich das abgespeicherte Dokument dann öffnen möchte, steigt mir Excel aus. Ich nehme an, daß eben der noch vorhandene VBA-Code verweise zu den control hat...Hilfe...und vielen Dank !!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code löschen
29.06.2005 18:40:05
GraFri
Hallo
Vielleicht hilft dir folgender Code weiter.


      
' Code in das erste Tabellenblatt (nach "DieseArbeitsmappe"), da der Löschvorgang
' in der Richtung "letzten Tabelle" zur "ersten Tabelle verläuft". Zuerst "Module",
' dann "Userformen" und zuletzt "Ereignisprozeturen (Code in einem Tabellenblatt) löschen"

'Diese Prozedur zum Löschen aufrufen
Sub Alles_löschen()
    
Call Lösche_Module
    
Call Lösche_Userformen
    
Call Lösche_Ereignisprozeduren
End Sub
Sub Lösche_Module()
'Löscht Module:
    For n = ThisWorkbook.VBProject.vbComponents.Count To 1 Step -1
        
If ThisWorkbook.VBProject.vbComponents(n).Type = 1 Then
            ThisWorkbook.VBProject.vbComponents(n).Collection.Remove ThisWorkbook.VBProject.vbComponents(n)
        
End If
    
Next
End Sub
Sub Lösche_Userformen()
'Löscht Userforms:
    For n = ThisWorkbook.VBProject.vbComponents.Count To 1 Step -1
        
If ThisWorkbook.VBProject.vbComponents(n).Type = 3 Then
            ThisWorkbook.VBProject.vbComponents(n).Collection.Remove ThisWorkbook.VBProject.vbComponents(n)
        
End If
    
Next
End Sub
mfg, GraFri
Anzeige
AW: VBA-Code löschen
30.06.2005 16:41:20
Sevket
Hallo GraFi,
vielen vielen Dank...Das ist genau das, wonach ich suchte...Hat mir echt geholfen...Respekt!!!
Gruß
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA-Code effektiv löschen in Excel


Schritt-für-Schritt-Anleitung

Um alle VBA-Codes aus Deinem Excel-Dokument zu löschen, kannst Du den folgenden VBA-Code verwenden. Dieser Code entfernt Module, UserForms und Ereignisprozeduren aus Deinem Excel-Projekt:

Sub Alles_löschen()
    Call Lösche_Module
    Call Lösche_Userformen
    Call Lösche_Ereignisprozeduren
End Sub

Sub Lösche_Module()
    ' Löscht Module
    For n = ThisWorkbook.VBProject.vbComponents.Count To 1 Step -1
        If ThisWorkbook.VBProject.vbComponents(n).Type = 1 Then
            ThisWorkbook.VBProject.vbComponents(n).Collection.Remove ThisWorkbook.VBProject.vbComponents(n)
        End If
    Next
End Sub

Sub Lösche_Userformen()
    ' Löscht UserForms
    For n = ThisWorkbook.VBProject.vbComponents.Count To 1 Step -1
        If ThisWorkbook.VBProject.vbComponents(n).Type = 3 Then
            ThisWorkbook.VBProject.vbComponents(n).Collection.Remove ThisWorkbook.VBProject.vbComponents(n)
        End If
    Next
End Sub

Sub Lösche_Ereignisprozeduren()
    ' Löscht Ereignisprozeduren in Worksheets
    For Each ws In ThisWorkbook.Worksheets
        ws.CodeName = "ThisWorksheet"
        With ws
            Application.VBE.ActiveVBProject.VBComponents(ws.CodeName).CodeModule.DeleteLines 1, .CodeModule.CountOfLines
        End With
    Next ws
End Sub

Dieser Code wird in das Modul eingefügt und kann durch Aufruf der Sub-Prozedur Alles_löschen aktiviert werden.


Häufige Fehler und Lösungen

  1. Excel stürzt ab beim Öffnen der Datei
    Überprüfe, ob noch VBA-Codes, die auf Controls verweisen, vorhanden sind. Führe den Löschcode erneut aus, um sicherzustellen, dass alles entfernt wurde.

  2. Fehlermeldung: "Projekt kann nicht geöffnet werden"
    Dies kann passieren, wenn Du versuchst, eine Datei zu öffnen, die noch Links zu gelöschten Modulen oder UserForms hat. Stelle sicher, dass alle Verweise entfernt sind, bevor Du das Dokument speicherst.


Alternative Methoden

  • Manuelles Löschen von VBA-Codes:
    Du kannst auch jeden VBA-Code manuell in den "Visual Basic for Applications" Editor (VBE) löschen. Klicke dazu mit der rechten Maustaste auf das Modul oder die UserForm und wähle "Löschen".

  • Verwendung von Excel Makros:
    Du kannst ein Excel Makro erstellen, das beim Öffnen der Datei automatisch alle VBA-Codes entfernt.


Praktische Beispiele

  1. Löschen eines bestimmten Moduls:
    Wenn Du nur ein bestimmtes Modul löschen möchtest, kannst Du folgendes verwenden:

    Sub ModulLöschen()
       ThisWorkbook.VBProject.vbComponents.Remove ThisWorkbook.VBProject.vbComponents("ModulName")
    End Sub
  2. Löschen aller UserForms: Du kannst den Lösche_Userformen-Code anpassen, um nur bestimmte UserForms zu löschen oder um eine Bestätigung vor dem Löschen zu bekommen.


Tipps für Profis

  • Sichere Dein Excel-Dokument:
    Bevor Du VBA-Codes löschst, erstelle eine Sicherheitskopie Deines Excel-Dokuments. So kannst Du sicherstellen, dass Du bei Problemen zurückkehren kannst.

  • Nutze die VBA-Referenz:
    Die thisworkbook.vbproject- und thisworksheet.vba-Objekte sind sehr mächtig. Nutze die Dokumentation von Microsoft, um mehr über die Möglichkeiten zu erfahren.

  • Verwende Debugging:
    Wenn Du Probleme mit Deinem Code hast, nutze die Debugging-Funktion im VBE, um Fehler zu identifizieren und zu beheben.


FAQ: Häufige Fragen

1. Wie kann ich alle VBA-Codes in einem Excel-Dokument auf einmal löschen?
Du kannst den obenstehenden Code Alles_löschen verwenden, um alle Module, UserForms und Ereignisprozeduren zu entfernen.

2. Muss ich VBA aktivieren, um den Code auszuführen?
Ja, Du musst die Entwicklertools in Excel aktivieren und den Zugriff auf das VBA-Projekt aktivieren, um den Code erfolgreich auszuführen.

3. Was passiert, wenn ich ein Modul lösche, das noch verwendet wird?
Wenn Du ein Modul löschst, das von anderen Prozeduren genutzt wird, kann es zu Fehlern kommen. Stelle sicher, dass keine Abhängigkeiten bestehen, bevor Du das Modul entfernst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige