Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Datei mit Passwort öffnen....
03.07.2007 22:41:02
Uwe
Hallo an Alle und guten Abend,
wie muß ein Code aussehen, wenn man folgendes möchte......
"Tester 1" öffnet Datei "Testgesamt" mit seinem Passwort z.b. "Tester 1". Dabei soll er nur das erste Tabellenblatt sehen. Die restlichen sollen ausgeblendet sein.
Wenn "Tester 2" die Datei "Testgesamt" mit seinem Passwort z.b. "Tester 2" öffnet soll er alle Tabellenblätter sehen. u.s.w.
geht das überhaupt?
Vorab schon mal Dank!
Gruß Uwe

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei mit Passwort öffnen....
03.07.2007 23:36:48
Thomas
Hallo Uwe,
ja das geht. Hier mal ein einfaches Beispiel:
3 Tester, 1=Tabelle1, 2=alle Tabellen, 3=Tabelle1 und Tabelle3
Die User schreiben ihre "Passwörter" in die Zelle X1 ihrer Tabelle.
Wechsle nun zum VBA-Editor und erstelle eine Userform Namens "Start". Die Userform muß eine Textbox haben und zwei Button (OK, Abbrechen).
Trage unter DieseArbeitsmappe den folgenden Code ein:
Private Sub Workbook_Open() Start.Show End Sub


In der Userform muß dann dieser Code stehen (alle Drei):

Private Sub UserForm_QueryClose _ (Cancel As Integer, CloseMode As Integer) If CloseMode 1 Then Cancel = 1 End Sub



Private Sub CommandButton1_Click()
If TextBox1 = "" Then
MsgBox "Passwort eingeben!"
TextBox1.SetFocus
Exit Sub
Else
If TextBox1.Text = Sheets("Tabelle1").[X1].Text Then 'Tester 1
Sheets("Tabelle1").Visible = True
Sheets("Tabelle2").Visible = False
Sheets("Tabelle3").Visible = False
Unload Me
GoTo ende
End If
If TextBox1.Text = Sheets("Tabelle2").[X1].Text Then 'Tester 2
Sheets("Tabelle1").Visible = True
Sheets("Tabelle2").Visible = True
Sheets("Tabelle3").Visible = True
Unload Me
GoTo ende
End If
If TextBox1.Text = Sheets("Tabelle3").[X1].Text Then 'Tester 3
Sheets("Tabelle1").Visible = True
Sheets("Tabelle2").Visible = True
Sheets("Tabelle3").Visible = False
Unload Me
GoTo ende
End If
MsgBox "Das Passwort ist nicht bekannt!"
TextBox1 = ""
TextBox1.SetFocus
End If
ende:
End Sub



Private Sub CommandButton2_Click()
Unload Me
ThisWorkbook.Saved = True
Application.Quit
End Sub


Also mit ein bissl Überlegen und probieren kannst das dann sicher auch auf deine Tabellen anwenden.
Denke aber daran das dies keine Sicherheit darstellt! Mit Format-Blatt-Einblenden kann jeder die anderen Tabellenblätter sichtbar machen. Denke auch daran das immer eine Tabelle visible, also sichtbar, sein muß. Sonst kommt es zur Fehlermeldung.
Tschüß Thomas

Anzeige
AW: Datei mit Passwort öffnen....
04.07.2007 13:31:12
Uwe
Hallo Thomas,
deinen Vorschlag hab ich soweit mal umgesetzt.
Funktioniert mit ein paar Anpassungen schon mal ganz gut!
Dank nochmal dafür!
Gruß Uwe

alternative Lösung zu Thomas Vorschlag
04.07.2007 00:57:56
Matthias
Hallo Uwe
probier mal ...
Es gibt 3 User in der Datei (also 3 Userblätter) & 1 Blatt Menue
Die User haben diese Passwörter
User1 = PW1 = "1111" 'anpassen
User2 = PW2 = "2222" 'anpassen
User3 = PW3 = "3333" 'anpassen
gib eines dieser Passwörter beim Einloggen ein und
der entsprechende User hat Zugriff auf seine Tabelle.
https://www.herber.de/bbs/user/43801.xls
Kommst Du damit zurecht ?
Gruß Matthias

Anzeige
AW: alternative Lösung zu Thomas Vorschlag
04.07.2007 13:34:55
Uwe
Hallo Matthias,
auch nicht schlecht! Allerdings angepasst an meine Tabelle hab ich noch ein paar Probleme.
Werde ich allerdings in mein nächstes Projekt im Urlaub einbinden.
Auch Dir nochmals Dank!
Gruß Uwe

AW: noch eine Alternative
04.07.2007 02:28:13
Matthias
Hallo Uwe,
das ist jetzt ein wenig umfangreicher:
https://www.herber.de/bbs/user/43803.zip
Wenn du die Mappe öffnest, wird ein Anmeldedialog angezeigt.
Mit Benutzer admin und kennwort admin kommst zu zu den Einstellungen:
Tabelle1
 ABCDEF
1UsernamePasswordEditTabelle1Tabelle2Tabelle3
2t1t1 x  
3t2t2  x 
4t3t3   x
5t12t12 xx 
6t13t13 x x
7t23t23  xx
8Adminadminx   
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Hier kannst du die Benutzer und Kennwörter einstellen.
Ein Eintrag in der Spalte "Edit" (es muss kein X sein) lässt den Benutzer "lediglich" dieses Blatt zum Editieren anzeigen.
Ab Spalte 4 stehen in Zeile 1 die Namen der Tabellenblätter der zu öffnenden Mappe.
Im Modul "UserForm1" stehen ganz oben 2 Konstanten:

Const xlFile = "Testgesamt.xls"
Const xlPass = "12345"


Diese kannst du anpassen: Es wird die Datei xlFile mit dem Kennwort xlPass geöffnet.
Die Datei wird im gleichen Verzeichenis wie die Datei "login.xls" erwartet.
So, bei deinen Excel-Kenntnissen wahrscheinlich ein harten Brocken, aber es lohnt sich, glaube ich...
Grüße Matthias

Anzeige
AW: noch eine Alternative
04.07.2007 13:46:00
Uwe
Hi Matthias,
dein letzter Satz stimmt natürlich genau!!! Aber Spass macht es trotzdem :-)
Also Dein Vorschlag sieht schon ganz gut aus. Allerdings hab ich da noch ein paar laienhafte Fragen:
1. wie muß der Code aussehen wenn meine "Testgesamt.xls" 8Tabellenblätter beinhaltet?
Folgender Fehler tritt auf.....
'erst alle Blätter einblenden (um LZ-Fehler zu vermeiden)
For s = 4 To sMax
n = .Cells(1, s)
------->wb.Worksheets(n).Visible = xlSheetVisible Next s.....
2. und sehe ich das richtig, dass mit der Login datei die Testgesamt Datei geöffnet wird?
3. muß die Testgesamt Datei irgendwo plaziert sein, oder wird sie automatisch gefunden....also Login z.b. in C:\ und Testgesamt in F:\?
Gruß Uwe

Anzeige
AW: noch eine Alternative
04.07.2007 14:42:00
Matthias
Hallo Uwe,
1. wie muß der Code aussehen wenn meine "Testgesamt.xls" 8Tabellenblätter beinhaltet?
Folgender Fehler tritt auf.....
'erst alle Blätter einblenden (um LZ-Fehler zu vermeiden)
For s = 4 To sMax
n = .Cells(1, s)
------->wb.Worksheets(n).Visible = xlSheetVisible Next s.....

Du musst in Zeile 1 ab Spalte D nach rechts hin die Namen der ein- oder auszublendenden Tabellenblätter eintragen, also wenn es 8 Blätter sind von Spalte D bis Spalte K. Wichtig, nicht zwangläufig Tabelle1, Tabelle2,... sondern die tätsächlichen Tabellenblattnamen. Wie viele es sind, wird im Code automatisch ermittelt.
2. und sehe ich das richtig, dass mit der Login datei die Testgesamt Datei geöffnet wird?
Ja, richtig. Der Code öffnet die Mappe mit dem eingestellten Kennwort (s. letzte Antwort) und schließt sich dann selbst. Der Vorteil ist, dass in der geöffneten Mappe selbst die Kennwörter nicht stehen. Außerdem kannst du dieser Mappe ein Lesekennwort geben, so dass ein unbefugter die Datei ohne weiteres gar nicht öffnen kann. (VBA-Codeschutz in Login.xls vorausgesetzt).
3. muß die Testgesamt Datei irgendwo plaziert sein, oder wird sie automatisch gefunden....also Login z.b. in C:\ und Testgesamt in F:\?
Im Moment ist es so, dass die Datei im gleichen Verzeichenis wie die Datei "login.xls" erwartet wird (s. letzte Antwort).
Aber das kann ich auf Wunsch auch ändern.
Gruß Matthias

Anzeige
AW: noch eine Alternative
04.07.2007 21:10:00
Uwe
Hallo Matthias,
nun hab ich es in etwa verstanden.....und es läuft prima!!!!
Dafür schon mal vielen Dank!!
Eins ist mir aber noch aufgefallen....... wenn man die Passworteingabe abbricht, öffnet sich automatisch die Admineinstellungen. Denke das es so nicht gewollt war. Muß da noch was verändert werden?
Gruß Uwe

AW: noch eine Alternative
04.07.2007 21:31:00
Matthias
Hallo Uwe,
Eins ist mir aber noch aufgefallen....... wenn man die Passworteingabe abbricht, öffnet sich automatisch die Admineinstellungen. Denke das es so nicht gewollt war. Muß da noch was verändert werden?
Ja, das war gestern mit heißer Nadel gestrickt.
hier die überarbeitete Version von login.xls:
https://www.herber.de/bbs/user/43837.xls
Viel Spaß,
Matthias

Anzeige
AW: noch eine Alternative
04.07.2007 22:36:00
Uwe
Hi Matthias,
also das möcht ich auch können......und wenn´s nur mit einer heißen Nadel wäre. :-)
Hab das jetzt mal geändert.....wenn ich jetzt auf Abbrechen gehe liegt die Logindatei unten in der Startleiste offen. Und wenn ich mit Passwort rein gehe, legt er die Testgesamt ebenfalls in die Startleiste ohne Excel als Vollfenster zu öffnen.
Gruß Uwe

AW: noch eine Alternative
04.07.2007 22:49:00
Matthias
Hallo Uwe,
dieser Effekt tritt bei mir nicht auf, aber naja. Versuch's mal damit:
https://www.herber.de/bbs/user/43841.xls
Hier wird nicht WindowState, sondern Visible verwendet.
Gruß Matthias

Anzeige
AW: noch eine Alternative
04.07.2007 22:37:00
Matthias
Hallo Uwe,
kleine Korrektur:
mit dem bisherigen Code kann man sich mit Benutzer "Username" und Kennwort "Password" als admin anmelden...
Deshalb im Code des Userforms in Zeile 17 ändern:

z = WorksheetFunction.Match(TextUser, ThisWorkbook.Sheets(1).Range("A2:A1000"), 0) + 1


Also statt Range("A:A") nur Range("A2:A1000") (ich denke 1000 User reichen ;-)
Gruß Matthias

AW: noch eine Alternative
04.07.2007 23:15:00
Uwe
So mein lieber Matthias,
da hat der Anfänger mal wieder nicht alles mit bekommen. :-) Hoffe das ich auch mal so einen Kopf dran bekomme....aber ich bin ja noch am Anfang....und es macht jeden Tag mehr Spass!
Hab die Änderungen in der Arbeitsmappe nicht gesehen!!
Jetzt läuft es super!
Nochmals vielen Dank!!!
Gruß Uwe

Anzeige
AW: noch eine Alternative
05.07.2007 13:03:00
Uwe
Hallo Matthias,
jetzt bin ich so am anpassen, da fällt mir folgendes auf.
Wenn ich über die Logindatei rein gehe und beim Passwort abbreche ist ja alles ok.
Jedoch kann man ja immer noch einfach die Testgesamt Datei einfach so öffnen.
Laienhaft hab ich mir gedacht das ich folgenden Code einpflege und automatisch wieder auf die Login Datei verweise.....

Private Sub Workbook_Open()
Workbooks.Open Filename:="C:\Eigene Dateien\Login.xls"
End Sub


...damit geht er ja auch direkt in die Passwortabfrage ohne die Testgesamt zu öffnen.
Aber wenn man nun die Passwortabfrage abbricht, öffnet er die Testgesamt trotzdem.
Die Frage wäre... muß der Abbrechen Button in der Passwortabfrage einen Workbook Close Befehl für die Testgesamt bekommen? und wie müßte der aussehen?
Ich hoffe das ich Dir damit nicht zu sehr auf die Nerven gehe und sage schon mal Dank !
Gruß Uwe

Anzeige
AW: noch eine Alternative
05.07.2007 13:08:00
Matthias
Hallo Uwe,
in den ersten Zeilen des Userform-Moduls stehen diese Zeilen:

Const xlFile = "Testgesamt.xls"
Const xlPass = "12345"


hier ist also mit xlPass eine Konstante definiert, die das Kennwort für die Datei "Testgesamt.xls" festlegt (hier:"12345").
Wie du der Datei Testgesamt.xls ein Lesekennwort zuweist, weißt du?
Gruß Matthias

AW: noch eine Alternative
05.07.2007 13:41:00
Uwe
Hallo Matthias,
ich kenn da nur den normalen Blattschutz.
Uwe

AW: noch eine Alternative
05.07.2007 13:47:00
Matthias
Hallo Uwe,
Kennwortschutz für Excel-Mappe erstellen:
Mappe öffnen, Menü Datei, Speichern unter, dann im sich öffnenden Fenster Oben rechts auf "Extras...", "Allgemeine Optionen..."
Dann im sich öffnenden Fenster unter "Lese- /Schreibkennwort" das Kennwort eingeben und OK drücken.
Dann das Kennwort auf Aufforderung wiederholt eingeben.
Dann ist der "Speichern unter.."-Dialog wieder sichtbar, einfach auf OK klicken.
Den Hinweis, dass die Datei überschrieben wird bestätigen,
Fertig.
Viel Erfolg,
Matthias

AW: noch eine Alternative
05.07.2007 14:00:00
Uwe
Hallo Matthias,
super das geht ja auch. Wieder was neues gelernt!
Vielen Dank!
Gruß Uwe

AW: noch eine Alternative
05.07.2007 14:18:00
Matthias
Hallo Uwe,
und auf diese Art und Weise kannst du verhindern, dass unbefugte die Datei "einfach so" öffnen können.
Allerdings solltest du den Code der Datei "login.txt" noch mit einem Kennwort schützen, sonst kann jeder die Kennwörter im Code auslesen.
So geht's:
Zuerst den VB-Editor mit Alt+F11 öffnen, dann Rechtsklick auf das Projekt, klick auf "Eigenschaften von VBProject...":
Userbild
Dann im erscheinenden Fenster auf "Schutz"...
Userbild
...und wie unten abgebildet den Haken sezten und das Kennwort zweimal eintragen:
Userbild
Dann auf OK und die Mappe speichern und schließen
Bei nächsten muss man zum Einsehen des Code das Kennwort eingeben.
Gruß Matthias

AW: noch eine Alternative
06.07.2007 13:15:11
Uwe
Hallo Matthias,
na das ist noch das i-Tüpfelchen oben drauf!
Nochmals vielen Dank für die Geduld und Hilfe!!
Gruß Uwe

AW: noch eine Alternative
06.07.2007 13:19:09
Matthias
Hallo Uwe,
na das ist noch das i-Tüpfelchen oben drauf!
Nicht das i-Tüpfelchen, sondern absolut notwedig.
Allerdings ist der VBA-Passwortschutz für einen Semi-Profi ohne großen Aufwand zu knacken.
In Excel ist halt nichts wirklich sicher.
Nochmals vielen Dank für die Geduld und Hilfe!!
Bitte, gern geschehen!
Gruß Matthias

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige