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

Makro löschen beim Umbenennen der Datei

Forumthread: Makro löschen beim Umbenennen der Datei

Makro löschen beim Umbenennen der Datei
Marta
Guten Morgen Liebe Forumianer,
ich habe eine Frage:
und zwar möchte ich, die kompletten Makros deaktivieren sobald das Workbook geschlossen oder umbenannt wird.
Gibt es da eine Möglichkeit?
Liebe Grüße
Marta
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Makro löschen beim Umbenennen der Datei
16.06.2010 12:17:50
Oberschlumpf
Hi Marta
Eine Möglichkeit wäre tatsächlich, nach einmaligem Gebrauch, das Makro/alle Makros zu löschen.
Dazu ist es aber erforderlich, dass du die Option "dem VBA-Projekt vertrauen" in Extras/Makro/Sicherheit aktivierst.
Da diese Aktivierung aber nicth mit VBA möglich ist, müsstest du, wenn die Datei auch auf anderen PC funktionieren soll, zu jedem PC hingehen, und diese Option "per Hand" aktivieren - oder eben der, der am PC sitzt, muss das tun.
Eine weitere Schwierigkeit ist, wenn diese Option aktiviert ist, dass es dann auch möglich ist, mit entsprechenden Befehlen (vllt andere Exceldateien mit Makros) den Code so umzuprogrammieren, dass eben auf einmal Makroviren aktiv sind.
Aber schon wegen Grund 1 ist die Möglichkeit, Code mit VBA zu löschen, eher unpraktisch.
Eine weitere Möglichkeit ist es vllt, dass du deinen Code so umschreibst, dass selbiger tatsächlich nur 1x gestartet wird.
Dazu würde ich eine Hilfszelle nutzen, die eben leer ist, wenn das Makro noch nie gestartet wurde, und einen Wert enthält, nachdem das Makro 1x durchlaufen ist.
Wenn die Datei ein zweites Mal geöffnet wird, wird die besagte Hilfszelle abgefragt, und wenn nicht leer, wird das Makro sofort wieder beendet.
Eine Hilfszelle benötigst du auf jeden Fall, da Excel ja nicht weiß, ob eine Datei schon mal gestartet wurde oder nicht.
Hilft das als Denkanstoß?
Ciao
Thorsten
Anzeige
AW: Makro löschen beim Umbenennen der Datei
16.06.2010 12:41:03
Marta
Hallo Thorsten,
vielen Dank, werde das mit der Hilfszelle auf jeden Fall gleich mal ausprobieren.
Hab es im Moment so gelöst:
Private Sub CommandButton1_Click()
Call Alle_Makros_loeschen("")
End Sub

Public Sub Alle_Makros_loeschen(Ausnahmen As String)
Dim objVBComponents As Object
With ActiveWorkbook.VBProject
For Each objVBComponents In .VBComponents
Select Case objVBComponents.Type
Case 1, 2, 3 'Module, Klasssenmodule, Userforms
If InStr(Ausnahmen, objVBComponents.Name) = 0 Then
.VBComponents.Remove .VBComponents(objVBComponents.Name)
End If
Case 100 'Workbook, Sheets
With objVBComponents.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
End Sub
aber das mit der Hilfszeile hört sich effizienter an.
Vielen Dank dir.
Ich sag bescheid, wenn ich das Problem gelöst habe, oder ich ein wenig hilfe brauche...
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige