Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro per Makro löschen

Makro per Makro löschen
13.07.2007 21:02:00
Reinhard
Hallo Wissende,
in einem anderen Forum stellte jmd. folgende Frage:
Excel XP: Wie kann ich per Makro (VB-Code) ein anderes Makro in derselben oder in einer anderen Arbeitsmappe löschen?
Ich habe dann u.a. geantwortet:
google mal in Groups nach Insertlines und/oder Deletelines (wird leider in der Vba-Hilfe nicht beschrieben), dann siehst du Codes wie man überhaupt auf Moudle zugreifen kann.
Mit diesem Wissen kannst du dann die Module zeilenweise auslesen,
dabei dann z.B. nach der Zeile "Sub MeinMakro()" suchen, und dann alle folgenden Codezeilen bis "End Sub" löschen mit deletelines.
Nun stieß er, ich auch, auf den nachfolgend gelisteten Code von
http://www.schmittis-page.de/index.html?/excel/vbe/t16.htm

Bei dem Befehl Set VBE = Application.VBE.ActiveCodePane.CodeModule
kommt eine Fehlermeldung,
"Programmtechnischer Zugriff auf das Projekt ist nicht sicher" o.ä.
Dies passierte mir auch bei anderen Codes aus dem Internet.
Jetzt weiß ich nicht, fehlt da ein Verweis o.ä.? Makrosicherheit steht auf Mittel und soll auch so bleiben.
Danke ^ Gruß
Reinhard

Sub Makro_löschen()
Dim FoundFlag As Boolean
Dim Zeilen()
Makroname = "Löschmich"
Suchtext = "Sub " & Makroname & "()"
Set VBE = Application.VBE.ActiveCodePane.CodeModule
FoundFlag = False
With VBE
For x = 1 To .CountOfLines
If UCase(.Lines(x, 1)) = UCase(Suchtext) Then FoundFlag = True
If FoundFlag Then
Zähler = Zähler + 1
ReDim Preserve Zeilen(Zähler)
Zeilen(Zähler) = x
If .Lines(x, 1) = "End Sub" Then
.DeleteLines Zeilen(1), UBound(Zeilen)
Exit For
End If
End If
Next x
If Not FoundFlag Then MsgBox "Makro " & Makroname & _
" nicht gefunden !", vbCritical
End With
End Sub



Sub Makro_löschen()
Dim FoundFlag As Boolean
Dim Zeilen()
Makroname = "Löschmich"
Suchtext = "Sub " & Makroname & "()"
Set VBE = Application.VBE.ActiveCodePane.CodeModule
FoundFlag = False
With VBE
For x = 1 To .CountOfLines
If UCase(.Lines(x, 1)) = UCase(Suchtext) Then FoundFlag = True
If FoundFlag Then
Zähler = Zähler + 1
ReDim Preserve Zeilen(Zähler)
Zeilen(Zähler) = x
If .Lines(x, 1) = "End Sub" Then
.DeleteLines Zeilen(1), UBound(Zeilen)
Exit For
End If
End If
Next x
If Not FoundFlag Then MsgBox "Makro " & Makroname & _
" nicht gefunden !", vbCritical
End With
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Makro per Makro löschen
13.07.2007 21:08:28
Uduuh
Hallo,
Extras-Makro-Sicherheit-Vertrauenswürdige Quellen
Haken bei 'Zugriff auf Visual Basic-Prokekt vertrauen' rein.
Gruß aus’m Pott
Udo

AW: Makro per Makro löschen
13.07.2007 21:43:43
Reinhard
Hallo Udo,
danke dir, werde es weitergeben.
Lieben Gruß
Reinhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige