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

Excel per VBA starten und schließen die Zweite

Excel per VBA starten und schließen die Zweite
16.03.2007 11:51:33
MG_Learning

Hallo zusammen!
Weiterführung des Problems von Gestern:
Ich habe jetzt zwei CmdButtons:
1. Beendet Userform und Schließt Excel


Private Sub cmdBeenden_Click()
Unload Me       ' Userform beenden
Application.DisplayAlerts = False
Application.Quit
End Sub
2. Soll eine Inputbox öffnen, für eine Passworteingabe(hier test), und dann den Zufriff auf Excel ermöglichen, wenn Passwort falsch zurück zur Userform! Die funktioniert leider nicht:

Private Sub cmdExcel_Click()
Dim strInput As String
strInput = InputBox("Passwort eingeben: ")
If strInput = "charterway" Then
Sheets("DCVDQ42005ASVT12").Activate
Application.Visible = True   ' Excel wieder sichtbar
Unload Me       ' Userform beenden
Else: MsgBox "Keine Zugriffsberechtigung!"
End Sub
Weiß einer warum?
Außerdem: Wie kann ich verhindern, dass wenn die Datei geöffnet wird, die Abfrage kommt "Makros aktivieren", denn wenn ich "nein" drücke, hat er ja wieder Zugriff auf die Daten der Datei!
Danke für eure Mühe und Geduld!
MFG Monty

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel per VBA starten und schließen die Zweite
17.03.2007 03:38:35
fcs
Hallo Monty,
du weiss hoffentlich, dass der Kennwortschutz in Exceldateien nicht so besonders effectiv ist. Er dient im wesenlichen dazu versehentliche Dateneänderungen zu verhindenr und Daten ggf. vor dem "einfachen" Anwender zu verbergen.
Damit du die Einsicht in die Daten per Passwort steuern kannst muss du etwas anders vorgehen:
1.
Wenn die Datei geöffnet wird, dann sollte nur eine Tabelle sichtbar sein, die Informationen und Buttons für die weitere Bearbeitung der Datei enthält. Alle anderen Tabellen die nur nach Passworteingabe bearbeitet/eingesehen werden dürfen, müssen per Makro auf den Status "xlSheetVeryHidden" gesetzt sein.
2.
Nach Passworteingabe werden die entsprechenden Blätter eingeblendet. Dass kannst du entweder in eine Workbook_Open-Prozedur einbauen oder über deinen Passwort-Eingabebutton steuern
3. Vor dem Schliessen der Datei werden alle Tabellenblätter bis auf das Einstiegs-/Infoblatt ausgeblendet.
So wird, wenn die Makos beim Öffnen der Datei nicht aktiviert werden, nur das Info-Blatt angezeigt. Die anderen Blätter sind ausgeblendet. Das Spielchen mit Excel sichtbar/unsichtbar schalten kannst du dir dann sparen.
Dein Problem mit der erneuten Anzeige des Userforms, wenn das Passwort falsch eingegeben wurde kann ich am grünen Tisch nicht klären. Dazu müsste ich die Datei/das Userform genauer kennen um die Abfolge der Prozeduren im Userform zu prüfen.
Nachfolgend ein kleines Beispiel für die Prozeduren, die im VBA-Ditor unter "DieseArbeitsmappe" eingefügt werden müssen. Eines der Tabellenblätter muss hier den Namen "Info" haben, sonst gibt es einen Fehler.
Gruss
Franz
Private Sub Workbook_Open()
Dim Passwort As String, wks As Worksheet
Passwort = "Test"
If InputBox("Bitte Passwort eingeben", "Passwortabfrage", "******") <> Passwort Then
MsgBox "Dateibearbeitung ist nur nach korrekter Passwort-Eingabe möglich!"
ThisWorkbook.Close savechanges:=False
Else
For Each wks In ThisWorkbook.Worksheets
Select Case wks.Name
Case "Tabelle1", "Tabelle2"
'Diese Tabellen einblenden
wks.Visible = xlSheetVisible
Case Else
'Do nothing
End Select
Next
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
Select Case wks.Name
Case "Info"
'Diese Tabellen nicht ausblenden
'Do nothing
Case Else
'Alle anderen Blätter ausblenden
wks.Visible = xlSheetVeryHidden
End Select
Next
ThisWorkbook.Save
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige