Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
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
Module löschen mit Project Passwort
08.03.2016 17:44:32
Robert
Hallo,
ich habe eine etwas ältere Excel-Applikation geerbt, die von Ihren Abläufen etwas umständlich strukturiert ist. Anstelle die Tabellenblätter mit den Auswertung in eine neue Datei zu schieben und zu speichern, speichert sich die Applikation samt Auswertung unter einem anderen Namen und löscht dann alle nicht benötigten Arbeitsblätter, Formulare und Module.
Ich muß jetzt sämtliche VBA Codes mit einem Passwort vor unbefugtem Zugriff schützen. Hier würde ich in den VBAProject - Projekteigenschaften das Kennwort zum Anzeigen der Projekteigenschaften setzen. Problem: Dann laufen diese Codes zum Löschen nicht mehr:
'alle Formen löschen

Private Sub Alle_Formen_löschen()
Dim vbc As Object
For Each vbc In ActiveWorkbook.VBProject.VBComponents
Select Case LCase(vbc.Name)
Case "userform1", "userform2", "userform3", "userform4", "userform5", "userform6", " _
userform7", "userform8": ActiveWorkbook.VBProject.VBComponents.Remove vbc
End Select
Next
End Sub

__________________________________________________________

Private Sub Alle_Module_löschen()
Dim vbc As Object
Dim strFile As String
' bei Fehler zum Errorhandler
On Error GoTo Errorhandler
' Mit dem VBA Objekten in der aktiven Datei.
With ActiveWorkbook.VBProject
For Each vbc In .VBComponents
Select Case vbc.Type
' Wenn Type = 1 dann ist es ein Standardmodul, dies wird komplett gelöscht!
Case 1
.VBComponents.Remove .VBComponents(vbc.Name)
' Wenn Type = 2 dann ist es ein Klassennmodul, dies wird komplett gelöscht!
Case 2
.VBComponents.Remove .VBComponents(vbc.Name)
' Wenn Type = 3 dann ist es ein Userform, dies wird komplett gelöscht!
Case 3
.VBComponents.Remove .VBComponents(vbc.Name)
Case 100
With .VBComponents(vbc.Name).CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next vbc
End With
Exit Sub
' Bei Fehlernummer 1004, diese Meldung ausgeben.
Errorhandler:
If Err.Number = 1004 Then
MsgBox "Das Löschen des VBA Codes ist fehlgeschlagen!" & vbCr & _
"Bitte überprüfen Sie folgende Einstellung! " & vbCr & _
"EXTRAS -> MAKRO -> SICHERHEIT -> Vertrauenwürdige Quellen." & vbCr & _
"'Zugriff auf Visual Basic Projekt vertrauen' muss aktiviert sein! ", vbCritical, _
" Meldung vom Makro VBAloeschen"
Else
MsgBox "Err.Number = " & Err.Number & ".   " & Err.Description, vbCritical
End If
End Sub

Wie kann man das elegant lösen, ohne die halbe Applikation anzupassen?
Eine Passwortabfrage beim User möchte ich gerne vermeiden.
Grüße & Danke
Robert

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Module löschen mit Project Passwort
08.03.2016 19:12:53
Nepumuk
Hallo,
speichere die Mappe als xlsx dann ist sie frei von VBA-Code.
Gruß
Nepumuk
Anzeige

18 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige