Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
668to672
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
668to672
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

kann man den makro schutz aufheben!

kann man den makro schutz aufheben!
22.09.2005 02:50:06
Swen
Hallo an alle,
Gibt es eine möglichkeit mit einem VBA Code den MakroSchutz aufzuheben
und wieder einzuschalten?
Ich habe eien Funktion die nicht Funktioniert wenn man einen Makroschutz
aktiv hat, daher würde ich ihn gerne vor dieser Funktion ausschalten und danach wieder ein schalten.
Wie sieht so ein VBA Code aus und wie funtzt er?
gruß
Swen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kann man den makro schutz aufheben!
22.09.2005 05:55:53
Hajo_Zi
Hallo Swen,
damit wäre Virenersteller Tür und Tor geöffnet.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: kann man den makro schutz aufheben!
22.09.2005 14:16:44
Rene
abschalten kann man es schon, wie gesagt, aber auf eigenenes risiko... bzw kannst du ihn nur für deine application ausschalten, das heißt, dass ein user, der dann dein tool auf seinem rechner nutz dies selbst erst tun müsste, daran kannst du nichts ändern...
lg René
AW: kann man den makro schutz aufheben!
22.09.2005 22:27:02
Swen
Hallo an alle,
dann möchte ich das Problem mal anders aufrollen,
ich habe folgenden Code zum abspeichern ohne Makros aus dem Forum bekommen
da ich mich noch nicht so sehr mit Klassenmodule auskenne
um genau zu sein überhaupt nicht! Benötige ich hier hilfe ist es möglich das
diese Makros anders schreibe so das sie auch funktioniernen wenn ich meine Arbeitsmappe
im Projekt Explorer mit einem Passwort versehe.
Derzeit klappt das leider nicht!
Option Explicit
Private Declare Function MoveWindow Lib "user32.dll" ( _
ByVal hWnd As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal bRepaint As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32.dll" ( _
ByVal nIndex As Long) As Long
Private Declare Function GetWindowRect Lib "user32.dll" ( _
ByVal hWnd As Long, _
ByRef lpRect As RECT) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" ( _
ByRef lpbi As InfoT) As Long
Private Declare Function CoTaskMemFree Lib "ole32" ( _
ByVal hMem As Long) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" ( _
ByVal lpStr1 As String, _
ByVal lpStr2 As String) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" ( _
ByVal pList As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassname As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal Msg As Long, _
ByRef wParam As Any, _
ByRef lParam As Any) As Long
Private Type InfoT
hWnd As Long
Root As Long
DisplayName As Long
Title As Long
Flags As Long
FName As Long
lParam As Long
Image As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const BIF_RETURNONLYFSDIRS = &H1
Private Const BIF_DONTGOBELOWDOMAIN = &H2
Private Const BIF_STATUSTEXT = &H4
Private Const BIF_RETURNFSANCESTORS = &H8
Private Const BIF_EDITBOX = &H10
Private Const BIF_VALIDATE = &H20
Private Const BIF_NEWDIALOGSTYLE = &H40
Private Const BIF_BROWSEINCLUDEURLS = &H80
Private Const BIF_BROWSEFORCOMPUTER = &H1000
Private Const BIF_BROWSEFORPRINTER = &H2000
Private Const BIF_BROWSEINCLUDEFILES = &H4000
Private Const BIF_SHAREABLE = &H8000
Private Const SM_CXFULLSCREEN = &H10
Private Const SM_CYFULLSCREEN = &H11
Private Const BFFM_SETSELECTION = &H466
Private Const BFFM_INITIALIZED = &H1
Private s_BrowseInitDir As String
Public Function fncGetFolder( _
Optional ByVal sMsg As String = "Bitte wählen Sie ein Verzeichnis ", _
Optional ByVal lFlag As Long = BIF_RETURNONLYFSDIRS, _
Optional ByVal sPath As String = "C:\") As String
Dim xl As InfoT, IDList As Long, RVal As Long, FolderName As String
s_BrowseInitDir = sPath
With xl
.hWnd = FindWindow("XLMAIN", vbNullString)
.Root = 0
.Title = lstrcat(sMsg, "")
.Flags = lFlag
.FName = FncCallback(AddressOf BrowseCallback)
End With
IDList = SHBrowseForFolder(xl)
If IDList 0 Then
FolderName = Space(256)
RVal = SHGetPathFromIDList(IDList, FolderName)
CoTaskMemFree (IDList)
FolderName = Trim$(FolderName)
FolderName = Left$(FolderName, Len(FolderName) - 1)
End If
fncGetFolder = FolderName
End Function

Private Function BrowseCallback( _
ByVal hWnd As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
If uMsg = BFFM_INITIALIZED Then
Call SendMessage(hWnd, BFFM_SETSELECTION, ByVal 1&, ByVal s_BrowseInitDir)
Call prcCenterDialog(hWnd)
End If
BrowseCallback = 0
End Function


Private Function FncCallback(ByVal nParam As Long) As Long
FncCallback = nParam
End Function


Private Sub prcCenterDialog(ByVal hWnd As Long)
Dim WinRect As RECT, ScrWidth As Integer, ScrHeight As Integer
Dim DlgWidth As Integer, DlgHeight As Integer
GetWindowRect hWnd, WinRect
DlgWidth = WinRect.Right - WinRect.Left
DlgHeight = WinRect.Bottom - WinRect.Top
ScrWidth = GetSystemMetrics(SM_CXFULLSCREEN)
ScrHeight = GetSystemMetrics(SM_CYFULLSCREEN)
MoveWindow hWnd, (ScrWidth - DlgWidth) / 2, _
(ScrHeight - DlgHeight) / 2, DlgWidth, DlgHeight, 1
End Sub

Public Sub speichern_ohne_Makros()

Dim Name As String
Dim Anwendung As Integer
Dim strFolder As String, strFilename As String, strFilename2 As String
Dim objVBC As Object, objSheet As Worksheet
strFolder = Trim$(fncGetFolder())
If strFolder "" Then
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With

If Right$(strFolder, 1) "\" Then strFolder = strFolder & "\"
strFilename = Worksheets("Coordinates").Cells(1, 7) & "a_" & _
Worksheets("Coordinates").Cells(1, 1).Text & ".xls"


strFilename = Replace(Left(strFilename, 1), "P", "V") & Mid(strFilename, 2, 255)
'******* Anweisung für die Prozedur und Warnung *******'

Name = strFilename

'***** Sprache wird festgelegt *****'
ModulDiverseFunktion.Tabelle_Sprache_einschalten
Dim strTextSprache1 As String
Dim strTextSprache2 As String
Dim strTextsprache3 As String
Dim strTextsprache4 As String
Dim strTextsprache5 As String
Dim strUeberschrift As String
strTextSprache1 = wrsSprache.Cells(265, intSpalteSprache).Value
strTextSprache2 = wrsSprache.Cells(266, intSpalteSprache).Value
strTextsprache3 = wrsSprache.Cells(267, intSpalteSprache).Value
strTextsprache4 = wrsSprache.Cells(268, intSpalteSprache).Value
strTextsprache5 = wrsSprache.Cells(269, intSpalteSprache).Value
strUeberschrift = wrsSprache.Cells(363, intSpalteSprache).Value
ModulDiverseFunktion.Tabelle_Sprache_ausschalten



If wrsOption.Cells(7, 1) = False Then

Anwendung = MsgBox(strTextSprache1 & Chr(13) & Chr(13) _
& strTextSprache2 & _
Chr(13) & Chr(13) & "' " & Name & " '" & Chr(13) & Chr(13) & _
strTextsprache3 & Chr(13) & Chr(13) & strFolder & Chr(13) & Chr(13) _
& strTextsprache4 & Chr(13) & Chr(13) & _
strTextsprache5, _
vbYesNo + vbInformation, strUeberschrift)
Else
Anwendung = 6

End If

If Anwendung = 6 Then

strFolder = strFolder & strFilename
ThisWorkbook.SaveCopyAs strFolder
Workbooks.Open strFolder
With Workbooks(strFilename).VBProject
For Each objVBC In .VBComponents
Select Case objVBC.Type
Case 1, 2, 3
.VBComponents.Remove .VBComponents(objVBC.Name)
Case 100
With objVBC.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
End With
With Workbooks(strFilename)
For Each objSheet In .Worksheets
If objSheet.Visible = xlSheetVeryHidden Then
objSheet.Visible = xlSheetVisible
objSheet.Delete
End If
Next
.Close SaveChanges:=True
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
End If
End If
End Sub
gruß
Swen
Anzeige
AW: kann man den makro schutz aufheben!
23.09.2005 16:20:14
Fred
Hi,
wenn das VBA-Projekt geschützt ist, kannst du programmatisch nicht darauf zugreifen.
Du kannst den Schutz aber via VBA aufheben. Wie es geht, findest du in der Recherche.
mfg Fred
AW: kann man den makro schutz aufheben!
23.09.2005 20:24:56
Swen
Hallo Fred,
ich danke dir für den Tip,
habe eine reihe von treffern,
verstehe zwar nicht alzu viel
was da steht aber lassen wir das
mal bei seite.
Ich habe doch ein Passwort
für das Projekt festgestellt.
Warum kann ich den dieses Passwort
nun nicht verwenden um das Projekt wieder
im Projekt-Explorer zu öffnen
und danch wieder zu aktivieren.
Dieses Passwort kennt doch nimand?
Gruß
Swen
Anzeige
AW: kann man den makro schutz aufheben!
23.09.2005 21:20:07
Fred
Hi,
mal anders, wenn du mit einem Makro dein VBA-Projekt verändern willst, darf es nicht geschützt sein, soweit klar? Es gibt keine Methode, um den Schutz mittels Makro aufzuheben, nur den Trick mir Sendkeys, den du sicher in der Recherche gefunden hast.
Wenn du dann die Mappe speicherst und schließt, ist beim erneuten Öffnen der Schutz wieder vorhanden.
mfg Fred
AW: kann man den makro schutz aufheben!
26.09.2005 20:12:48
Swen
Hallo Fred,
danke für deine Hilfe!
gruß
Swen

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige