Herbers Excel-Forum - das Archiv
mehrere Makros mit VBA löschen
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
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
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
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
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
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
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?
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
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