Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Login

Forumthread: Login

Login
15.08.2016 14:42:22
Michael
Hallo
hätte ein Problem habe hier eine tabelle gefunden mit einer Login funktion.Geht auch super aber nur mit 1 Tabelle "Michael".
Würde gerne das beim Login es sind 8 Tabellen mit Namen"Michael,Svenja,Sophia,Luca,Oma,Opa,Tanta,Onkel". Das wenn man einen Namen wählt und sich richtig anmeldet das dann die richtige Tabelle auch aufgeht .
zurzeit ist es so ich suche den Namen Michael und das Passwort und er macht Michael auf.
Nehme ich den Namen Svenja macht es auch Michael auf.
Hoffe ihr könnt mir weiterhelfen.
https://www.herber.de/bbs/user/107631.xlsm
Gruß Michael
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Login
15.08.2016 15:27:42
ChrisL
Hi Michael
So...
Private Sub Image2_Click()
If TextBox1 = Sheets("Daten").Cells(ComboBox1.ListIndex + 1, 2) Then
MsgBox "Anmeldung erfolgreich..."
Sheets(ComboBox1.Value).Visible = xlSheetVisible
MsgBox ComboBox1.Value & " wurde eingeblendet"
Unload UserForm1
Else
MsgBox "Passwort falsch..."
End If
End Sub

(n.b. Sicher ist die Sache nicht)
cu
Chris
Anzeige
AW: Login
15.08.2016 19:22:48
Michael
Hallo Chris
vielen Dank funktioniert super.
Wie kann ich es denn Sicherer machen sollte schon ziehmlich sein?
Gruß Michael
AW: Login
15.08.2016 19:51:08
ChrisL
Hi Michael
Excel (speziell Blatt- und Mappenschutz) werden generell als unsicher angesehen. Insofern müsstest du auf Excel verzichten.
Nebst irgendwelchen Profi-Lösungen ausserhalb von Excel, erreichst du Schutz durch Trennung der Daten d.h. jeder hat seine eigene Datei. Blöder Tipp ich weiss :)
Innerhalb von Excel würde ich die Blätter mit "xlVeryHidden" ausblenden d.h. die Tabellen können nur mittels Makro wieder eingeblendet werden. Darauf achten, dass der User nicht dein "wieder einblenden Makro" findet. Anschliessend ein VBA-Passwort setzen.
Beim Speichern müssen die Personenblätter immer ausgeblendet sein. Sonst kann man die Datei ohne Makro starten und das letzte Blatt ist noch da.
M.E. hast du den Otto-Normalverbraucher damit abgedeckt. Mr. Hobby-Hacker eher nicht. Insofern könntest du dir überlegen, ob anstelle einer Passwort-Eingabe nicht eine Abfrage des Windos-Users Environ("Username") reichen würde.
cu
Chris
Anzeige
AW: Login
15.08.2016 20:32:12
Michael
Danke Chris
Aber da versteh ich nur Bahnhof wie würde das mit einem Makro aussehen hättest du da ein Beispiel für mich.
Gruß Michael
AW: Login
16.08.2016 08:50:11
ChrisL
Hi Michael
xlSheetVeryHidden hast du ja bereits benutzt. Die Passwortliste müsstest du natürlich auch mit Makro und VeryHidden ausblenden.
Das ausblenden der Personenblätter machst du im Before_Close Ereignis. Ist OK aber hat folgende Nachteile:
- Wenn Excel "gewaltsam" geschlossen wird (Absturz oder so), dann läuft das Ereignis u.U. nicht ab
- Der User hat keine Möglichkeit zu schliessen ohne zu speichern
Alternative ist den Vorgang im BeforeSave Ereignis zu lösen. Allerdings müsstest du dann die ganze Speicherroutine nachbauen. Dies hatte ich mal mit folgendem Code gelöst:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sPW As String, sVN As String
sPW = "Passwort"
sVN = ThisWorkbook.Worksheets("Schritt 3").Range("C4")
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
ThisWorkbook.Unprotect sPW
Call SheetsAusblenden
ThisWorkbook.Protect sPW
Cancel = True
If SaveAsUI Then
Application.Dialogs(xlDialogSaveAs).Show ("Blabla " & sVN & "_" & Right(Environ("Username"), _
3) & "_" & Format(Date, "DDMMYY")), xlOpenXMLWorkbookMacroEnabled
Else
ThisWorkbook.Save
End If
Application.EnableEvents = True
ThisWorkbook.Unprotect sPW
Call SheetsEinblenden
ThisWorkbook.Protect sPW
ThisWorkbook.Saved = True
Application.EnableEvents = True
End Sub

Und zum Username dachte ich anstelle eines Userforms zur Passworteingabe an sowas:
Private Sub Workbook_Open()
Select Case Environ("Username")
Case "WindowsUserMichael": Sheets("Michael").Visible = True
Case "WindowsUserSvenja": Sheets("Svenia").Visible = True
Case Else: MsgBox "nix da"
End Select
End Sub

cu
Chris
Anzeige
AW: Login
16.08.2016 09:29:38
Michael
Danke Chris
werde es mal Probieren hob ich es hinbekomme.
Gruß Michael
;
Anzeige

Infobox / Tutorial

Login in Excel: So funktioniert's


Schritt-für-Schritt-Anleitung

Um eine Login-Funktion in Excel zu erstellen, die mehrere Benutzer und Tabellen unterstützt, kannst Du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Erstelle Deine Tabellen: Lege 8 Tabellen mit den Namen "Michael", "Svenja", "Sophia", "Luca", "Oma", "Opa", "Tanta" und "Onkel" an.
  2. Füge ein UserForm hinzu: Gehe in den VBA-Editor (Alt + F11) und füge ein UserForm hinzu. Platziere ein Textfeld für das Passwort und eine ComboBox für die Nutzerauswahl.
  3. Füge folgenden VBA-Code hinzu:
    Private Sub Image2_Click()
       If TextBox1 = Sheets("Daten").Cells(ComboBox1.ListIndex + 1, 2) Then
           MsgBox "Anmeldung erfolgreich..."
           Sheets(ComboBox1.Value).Visible = xlSheetVisible
           MsgBox ComboBox1.Value & " wurde eingeblendet"
           Unload UserForm1
       Else
           MsgBox "Passwort falsch..."
       End If
    End Sub
  4. Blende die Tabellen aus: Setze die Sichtbarkeit der Tabellen auf xlSheetVeryHidden, um die Tabellen vor unbefugtem Zugriff zu schützen.
  5. Verwende den Benutzernamen: Du kannst auch den Windows-Benutzernamen abfragen, um die Tabellen zu laden. Dafür kannst Du den folgenden Code verwenden:
    Private Sub Workbook_Open()
       Select Case Environ("Username")
           Case "WindowsUserMichael": Sheets("Michael").Visible = True
           Case "WindowsUserSvenja": Sheets("Svenja").Visible = True
           Case Else: MsgBox "nix da"
       End Select
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Passwort wird nicht akzeptiert
    Lösung: Überprüfe, ob die Passwörter korrekt in der "Daten"-Tabelle gespeichert sind und ob die ComboBox den richtigen Index hat.

  • Fehler: Tabelle wird nicht sichtbar
    Lösung: Stelle sicher, dass die Tabelle sichtbar ist und dass der Name in der ComboBox exakt mit dem Tabellennamen übereinstimmt.


Alternative Methoden

Wenn Du eine sicherere Login-Methode implementieren möchtest, könntest Du die Daten in separate Dateien aufteilen. Jeder Benutzer hätte seine eigene Excel-Datei, was den Zugriff auf andere Benutzerinformationen verhindert.

Ein anderer Ansatz wäre die Verwendung eines externen Datenbanksystems, um die Benutzerdaten zu speichern und zu verwalten. Dies kann jedoch komplexer sein und erfordert zusätzliche Kenntnisse.


Praktische Beispiele

Hier ist ein einfaches Beispiel für eine Excel-Login-Maske, die Du als Vorlage verwenden kannst. Du kannst das UserForm so gestalten, dass es den Login-Prozess vereinfacht:

  1. UserForm Design: Füge ein Textfeld für das Passwort und eine ComboBox für die Benutzerauswahl hinzu.
  2. Code Beispiel:
    Private Sub Image2_Click()
       ' Dein Code für die Anmeldung hier
    End Sub

Wenn Du diese Schritte befolgst, kannst Du eine effektive und benutzerfreundliche Excel-Login-Funktion implementieren.


Tipps für Profis

  • Sicherheit erhöhen: Verwende xlVeryHidden, um sensible Blätter vor neugierigen Blicken zu schützen.
  • Passwortschutz: Setze ein VBA-Passwort für den Code, um unbefugten Zugriff zu verhindern.
  • Backup: Mache regelmäßige Backups Deiner Excel-Dateien, insbesondere wenn Du mit sensiblen Daten arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich die Sichtbarkeit der Tabellen steuern?
Du kannst die Sichtbarkeit der Tabellen mit dem Befehl Sheets("Tabellenname").Visible = xlSheetVisible oder xlSheetVeryHidden steuern.

2. Ist Excel sicher für Login-Funktionen?
Excel ist in der Regel nicht als sicher angesehen für sensible Daten. Überlege, ob Du nicht auf ein professionelleres System umsteigen möchtest.

3. Wo finde ich weitere Informationen?
Besuche das herber excel forum, um weitere Unterstützung und Beispiele zu finden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige