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

Nur bestimmte Makros aktivieren

Nur bestimmte Makros aktivieren
21.10.2005 20:21:57
Andre
Hallo alle zusammen,
Ich habe eine Excel Datei für verschiedene User Namens Matrix erstellet wo ich in diese Arbeitsmappe folgende Makros stehen habe:
'kopieren verhindern

Private Sub Workbook_Deactivate()
On Error Resume Next
If ActiveSheet.[iv65536] = "" Then
Application.CutCopyMode = False
Else
Exit Sub
End If
End Sub

'Blattschutz setzen

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("iv65536")) Is Nothing Then
Exit Sub
End If
On Error Resume Next
If ActiveSheet.[iv65536] = "" Then
ActiveSheet.Protect "xxx"
End If
End Sub

Da ich selbst an dieser Datei von Zeit zu Zeit etwas ändern muss, möchte ich gern dass diese 2 Makros nicht aktiv sind wenn ich die Datei öffne alle anderen sollten trotzdem laufen. Ich könnte mir vorstellen, dass ich ein Makro in einer anderen Datei erstelle, wo die Abfrage nach dem User „Andre“ und der Datei Name „Matrix“ gemacht wird und wo diese 2 Makros nicht aktiv sind.
Ist es möglich mit Hilfe einer anderen Datei diese 2 Makros zu deaktivieren oder muss ich in der Datei Namens Matrix die Makros ändern, oder geht es überhaupt nicht.
Hat jemand eine Idee wie ich das lösen kann!
Danke im Voraus
MFG
Andre

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur bestimmte Makros aktivieren
21.10.2005 20:28:50
Matthias
Hallo Andre,
wenn du mit Windows 2000+ arbeitest, dann an den Anfang der Prozedur:

If Environ("USERNAME")="Andre" Then Exit Sub 'Andre' durch deinen Windows-Anmeldenamen ersetzen

Gruß Matthias
AW: Nur bestimmte Makros aktivieren
21.10.2005 20:45:49
Andre
Hallo Matthias,
danke für deine Antwort. Ich arbeite mit XP dort wird es wohl nicht funktionieren, werde es mal prüfen!
MFG
Andre
AW: Nur bestimmte Makros aktivieren
21.10.2005 20:47:59
Matthias
Hallo Andre,
mit Windows 2000+ meinte ich Windows 2000 oder höher.
Gruß Matthias
AW: Nur bestimmte Makros aktivieren
21.10.2005 21:45:49
paula
hi andre,
du hast doch schon eine Löung angegeben:
am Anfang bestimmter Makros dieser speziellen Datei nach dem User zu fragen (Registry auslesen) oder die bestimmten Makros erst nach erfolgreicher Passworteingabe laufen zu lassen
Paula
Anzeige
AW: Nur bestimmte Makros aktivieren
21.10.2005 22:02:42
Andre
Hallo
Matthias mit deiner Lösung geht es prima!
Auch dir Paula dank für deine Antwort, hast du etwas auf Lager, wie ich bestimmte Makros erst nach erfolgreicher Passworteingabe laufen lassen kann. Wäre dir für ein Bsp.: sehr dankbar!
MFG
Andre
AW: Nur bestimmte Makros aktivieren
21.10.2005 22:14:22
Rene
Hallo!
Wie wäre es mit einer Userform? Dort könntest Du Deinen Makrocode einbauen und von einem Passwort abhängig machen. Ist das Passwort falsch, wird die Userform beendet und eine Fehlermeldung (MSgBox) ausgegeben. Ist das Passwort richtig, wird der gewünschte Vorgang ausgeführt.
Grüße, Rene
AW: nur bestimmte Makros aktivieren
21.10.2005 23:12:08
Matthias
Hallo Andre,
z.B. so:
erstelle ein Userform "UserForm1" mit CommandButton1 (OK), Commandbutton2 (Abbrechen), Textbox1 (für das Kennwort) mit der Eigenschaft PasswordChar="*" und einem Label, der die Textbox beschriftet.
Dann diesen Code ins Modul der Userform:

Option Explicit
Dim pw()
Dim pwList As Boolean
'Button "OK"
Private Sub CommandButton1_Click()
Dim i As Integer, found As Boolean
If pwList Then
For i = 0 To UBound(pw)
If TextBox1 = pw(i) Then found = True: Exit For
Next i
If Not found Then
MsgBox "falsches Kennwort!"
TextBox1 = ""
TextBox1.SetFocus
Exit Sub
End If
End If
Unload Me
End Sub
'Button "Abbrechen"
Private Sub CommandButton2_Click()
TextBox1 = ""
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then TextBox1 = ""
End Sub
Public Function GetPassword(Optional arr) As String
If IsMissing(arr) Then
pwList = False
Else
pwList = True
ReDim pw(UBound(arr))
pw = arr
End If
Me.Show
GetPassword = TextBox1
End Function

Damit kann man auch mehrere Gültige Kennwörter verwalten. Bei nur einem Kennwort ginge der Aufruf (aus einem Standardmodul) so:

Sub Makro1()
Dim s As String
s = UserForm1.GetPassword(Array("123")) 'Kennwort hier: "123"
If s = "" Then Exit Sub
'ab hier dein Code
End Sub

die Funktion gibt entweder ein gültiges Passwort zurück oder einen Leerstring, wenn kein gültiges Kennwort eingegeben wurde (Abbrechen).
Bei mehreren Kennwörten könnte man verschiedene Rechte verwalten.
Der Aufruf ginge dann z.B. so:

Sub Makro2()
Dim s As String
Const passw1 = "zeynep"
Const passw2 = "rüdiger"
Const passw3 = "bock"
Const passw4 = "krepp"
Const passw5 = "kluth"
s = UserForm1.GetPassword(Array(passw1, passw2, passw3, passw4, passw5))
MsgBox s
End Sub

Viel Erfolg,
Matthias
Anzeige
AW: nur bestimmte Makros aktivieren_DANKE!
22.10.2005 19:23:59
Andre
Hallo,
recht herzlichen DANK für eure Antworten.
Matthias, dein Beispiel werde ich testen, falls es Probleme geben sollte, dann werde ich mich bis Montag den 24.10.05 nochmals melden.
MFG
Andre

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige