Herbers Excel-Forum - das Archiv

mehrere Makros mit VBA löschen

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

Betrifft: mehrere Makros mit VBA löschen
von: fuzzi

Geschrieben am: 31.12.2006 01:10:34
kann nur ein Modul so löschen, wie ändere ich das auf mehrere? Danke
Sub DeleteCode()
Dim wks As Worksheet
Dim mdl As Object
With ActiveWorkbook.VBProject
For Each wks In Worksheets
With .VBComponents(wks.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next wks
With .VBComponents("Modul2").CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
MsgBox "Alles klar!"
End Sub

Bild

Betrifft: AW: mehrere Makros mit VBA löschen
von: chris b

Geschrieben am: 31.12.2006 02:34:16
Hallo das geht so.
Sub DeleteCode()
Dim wks As Worksheet
Dim mdl As Object
With ActiveWorkbook.VBProject
For Each wks In Worksheets
With .VBComponents(wks.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next wks
For Each modl In ActiveWorkbook.VBProject.VBComponents
With .VBComponents(modl.Name).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next
End With
MsgBox "Alles klar!"
End Sub

gruß Chris
Bild

Betrifft: AW: mehrere Makros mit VBA löschen
von: fuzzi

Geschrieben am: 31.12.2006 11:00:46
nun lösche ich alle Module, ich möchte jedoch ein Modul belassen, wie mach ich das? danke vom dummy, besonders Chris für die Hilfe
Sub DeleteCode()
Dim wks As Worksheet
Dim mdl As Object
With ActiveWorkbook.VBProject
For Each wks In Worksheets
With .VBComponents(wks.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next wks
For Each modl In ActiveWorkbook.VBProject.VBComponents
With .VBComponents(modl.Name).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next
End With
MsgBox "Alles klar!"
End Sub

Bild

Betrifft: AW: mehrere Makros mit VBA löschen
von: fuzzi

Geschrieben am: 31.12.2006 11:43:18
nun lösche ich alle Module, ich möchte jedoch ein Modul belassen, wie mach ich das? danke vom dummy, besonders Chris für die Hilfe
Sub DeleteCode()
Dim wks As Worksheet
Dim mdl As Object
With ActiveWorkbook.VBProject
For Each wks In Worksheets
With .VBComponents(wks.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next wks
For Each modl In ActiveWorkbook.VBProject.VBComponents
With .VBComponents(modl.Name).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next
End With
MsgBox "Alles klar!"
End Sub

Bild

Betrifft: AW: mehrere Makros mit VBA löschen
von: Nepumuk

Geschrieben am: 31.12.2006 11:50:14
Hallo fuzzi,
diese Konstruktion löscht aber dein Modul nicht, sondern nur den Code darin.
With .VBComponents("Modul2").CodeModule
    .DeleteLines 1, .CountOfLines
End With

Wo gibt es überall Code ("Dieserbeitsmappe", Tabellen, Diagrammblätter, Userforms, Klassenmodule)? Welches Modul (Name) willst du behalten?
Gruß
Nepumuk
Bild

Betrifft: AW: mehrere Makros mit VBA löschen
von: fuzzi

Geschrieben am: 31.12.2006 12:29:54
Lieber Nepumuk, danke für die Bemühung!
mit
Sub DeleteCode()
Dim wks As Worksheet
Dim mdl As Object
With ActiveWorkbook.VBProject
For Each wks In Worksheets
With .VBComponents(wks.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next wks
For Each modl In ActiveWorkbook.VBProject.VBComponents
With .VBComponents(modl.Name).CodeModule
.DeleteLines 1, .CountOfLines
End With
Next
End With
MsgBox "Alles klar!"
End Sub

hab ich alle Module gelöscht, die sind in einem Arbeitsblatt, das Modul1 möchte ich erhalten, wie tu ich´s?
Bild

Betrifft: AW: mehrere Makros mit VBA löschen
von: Nepumuk

Geschrieben am: 31.12.2006 12:47:21
Hallo fuzzi,
versuch es mal damit:
Public Sub alle_Makros_loeschen()
    Dim objVBComponents As Object
    With ActiveWorkbook.VBProject
        For Each objVBComponents In .VBComponents
            Select Case objVBComponents.Type
                Case 1, 2, 3 'Module, Klasssenmodule, Userforms
                    If objVBComponents.Name <> "Modul1" Then _
                        .VBComponents.Remove .VBComponents(objVBComponents.Name)
                Case 100 'Workbook, Sheets
                    With objVBComponents.CodeModule
                        .DeleteLines 1, .CountOfLines
                    End With
            End Select
        Next
    End With
End Sub

Gruß
Nepumuk
Bild

Betrifft: AW: mehrere Makros mit VBA löschen
von: fuzzi
Geschrieben am: 31.12.2006 15:58:47
Lieber Nepumuk!
Danke, funktioniert bestens, alle Deine Wünsche fürs nächste Jahr sollen erfüllt werden, Grüße aus Linz
 Bild
Excel-Beispiele zum Thema "mehrere Makros mit VBA löschen"
Suche über mehrere Tabellen Mehrere Schaltflächen für ein Makro
Suchbegriff über mehrere Tabellenblätter suchen. Benutzerdefinierte SVERWEIS-Funktion über mehrere Bereiche
Druck aus mehreren Tabellenblättern auf eine Druckseite AutoFilter über mehrere Arbeitsblätter setzen
Daten von mehreren Blättern auf ein Druckblatt Prozentuale Erhöhung über mehrere Arbeitsblätter hinweg
Werte in mehreren Spalten sortieren Textreihe auf mehrere Spalten mit fester Seitenlänge verteilen