Office: Freigabe nach Kennwortabfrage

Helfe beim Thema Freigabe nach Kennwortabfrage in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Excel-Profis Ich stehe noch ziemlich am Anfang der VBA-Programmierung und habe weder durch Googeln noch in einem Excel-VBA-Buch, das ich mir... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von alfred(o), 12. November 2020.

  1. Freigabe nach Kennwortabfrage


    Hallo Excel-Profis
    Ich stehe noch ziemlich am Anfang der VBA-Programmierung und habe weder durch Googeln noch in einem Excel-VBA-Buch, das ich mir kürzlich gekauft habe, eine passende Lösung für meine Aufgabe gefunden.
    Eine Exceltabelle soll nur von bestimmten Mitarbeitern geöffnet und bearbeitet werden können.
    diese Mitarbeiter haben User-Kennungen wie:

    FMAH656
    FMKR577
    HHEG432

    1. Ich suche einen VBA Code, mit dem beim Öffnen dieser Arbeitsmappe zum Beispiel mittels einer InputBox die User-Kennung abgefragt wird und logischerweise nur bei korrekter Eingabe eines dieser Kennungen die Arbeitsmappe zur Bearbeitung freigegen wird. Im Falle einer Fehleingabe sollte eine Mitteilung per MsgBox erfolgen, dass die Eingabe falsch ist, etwa:
    Keine Freigabe! Bitte korrekte User-Kennung eingeben.

    2. Am elegantesten wäre es, wenn die User-Kennungen aus einer Liste ausgelesen werden könnten, die in der Arbeitsmappe zum Beispiel auf Tabellenblatt 2 hinterlegt ist und somit die Berechtigungen entsprechend verändert werden können.

    Ich hoffe, ich habe mich ausreichend verständlich ausgedrückt und freue mich auf eure Hilfe.
    Vielen Dank vorab.

    :)
     
    alfred(o), 12. November 2020
    #1
  2. Hallo Alfredo,

    da habe ich zB diesen Link für dich:
    https://www.herber.de/forum/archiv/1...nUsername.html
    Da wird genau das gemacht, was du möchtest. Der Fragesteller hat eine Lösung, in der er die Usernamen im Code direkt einträgt. Der erste Antworter bietet die Lösung für deinen Punkt 2. Sprich es wird in der zweiten Tabelle nach dem Benutzernamen gesucht.
    Ich gehe davon aus, dass deine User-Kennungen die Windows Anmeldenamen sind. Dann funktioniert das wie beschrieben.

    So, und nun zum eigentlichen Problem. Lass dir gesagt sein, dass ein solcher "Schutz" recht sinnlos ist. Was machst du, wenn der Benutzer Makros deaktiviert? Schon wird da nichts abgefragt und die Datei öffnet sich. Du musst also schon die nächsten Verrenkungen machen um die Datei vor unbefugtem Zugriff zu schützen.
    Letztlich ist es so, dass Excel keinen wirkungsvollen Schutz gegen unerwünschten Zugriff bietet. Jeder halbwegs versierte User kann mit der Suchmaschine seines Vertrauens binnen Minuten die meisten Schutzvarianten aushebeln.
    Einzig das Lesekennwort von Excel bietet meines Erachtens etwas Schutz, da für das Knacken meist kostenpflichtige Tools verwendet werden müssen. Und das ist den meisten Usern dann doch zu doof. Aber grundsätzlich haben streng vertrauliche Daten in einer Excelliste niemals etwas verloren.
     
    MisterBurns, 13. November 2020
    #2
  3. Hallo Berni,
    vielen Dank für deine ausführliche Antwort. Erst mal zu deinem Hinweis bezüglich der Wirksamkeit des Schutzes. Ich werde das auch beherzigen wenn ich mal in die Situation kommen sollte mit eben solch streng vertraulichen Inhalten arbeiten zu müssen. Hier geht es um Tabellen, die innerhalb einer Abteilung bearbeitet werden sollen. Eine derartig kriminelle Energie will ich meinen Kollegen jetzt nicht unterstellen. Die Anfrage kam von meinem Vorgesetzten, der von Excel noch sehr viel weniger versteht als ich. Wie du sicher schon erkannt hast, bin ich nun auch kein Excel-Gott, aber schon sehr interessiert besser zu werden. Daher beschäftige ich mich zurzeit mit VBA.

    Als „blutiger“ VBA-Anfänger allerdings habe ich lange gebraucht, bis ich mit den Codes aus dem Link, den du mir gegeben hast, so einigermaßen etwas anfangen konnte. Ich taste mich also schrittweise voran
    und versuchte es mit einer im Code festgelegten User-Kennung:

    Private Sub Workbook_Open()
    Dim ID As String
    ID = Environ("Username")
    ID = InputBox("Bitte gebe deine User-Kennung ein", "Abfrage User-Kennung")
    Select Case ID
    Case Is = " FMAH656"
    ThisWorkbook.Open
    Case Else
    ThisWorkbook.Close
    End Select
    End Sub

    Tja, funktioniert aber nicht. Erhalte dann den Laufzeitfehler 438
    „Objekt unterstützt diese Eigenschaft oder Methode nicht“
    Welchen eklatanten Fehler habe ich gemacht?
    Wäre schön wenn du mir (wenn ihr mir) weiterhelfen könntest (könntet).
    Besten Gruß
    Alfred(o)
     
    alfred(o), 16. November 2020
    #3
  4. Freigabe nach Kennwortabfrage

    Hallo Alfred,

    bezüglich des Schutzes von solchen Dateien sehe ich es so wie Berni.

    Zu Deiner Frage
    Ich vermute mal, zu versuchen eine Datei per Code zu eröffnen, die sich gerade im Open-Prozess befindet.

    Unter den Bedingungen
    kann ich mir folgende Lösung vorstellen.
    Wenn es noch etwas "raffinierter" sein soll, könnte man die User-Namen auch einem geschützten und ausgeblendeten Blatt der Datei entnehmen.
    Code:
    Code im VBE unter "DieseArbeitsmappe" ablegen (und sich selbst als User mit einfügen).

    Und das funktioniert auch nur dann wie gewünscht, wenn der Personen-bezogene Rechner beim Verlassen des Arbeitsplatzes runtergefahren wird.
     
  5. Hallo,

    der Code in #4 ist die Basis, aber die Vergabe von Passwörtern für das Workbook.Open und die Blätter können den Schutz verbessern.

    Ein spezielles, von M$ dafür eingerichtetes Workbook.Open password verhindert, dass mit einem UnZip der Schutz überwunden werden kann. Zusammen mit einem Sheet-Passwort ist das ziemlich unangenehm zu überwinden.

    Außerdem kann der Inhalt (mini-) krytographisch verschleiert werden.

    Falls jemand Lust für ein paar Experimente hat, könnte das für alle lehrreich sein.

    mfg
     
    Fennek11, 16. November 2020
    #5
  6. Schau dir mal die Optionen im Reiter Überprüfen|Schützen|Bearbeiten von Bereichen zulassen an. Hier kannst du userbezogene Schreibrechte vergeben und Bereiche mit Passwort schützen. Verbunden mit einem mappenweit gültigen Lesekennwort bist du unter den von dir genannten Bedingungen schon recht weit gesichert.

    Das ganze Vorgehen arbeitet makrofrei, nur mit eingebauten Features.

    Schutzideen, die auf (solch primitiven) Makros basieren, bedürfen nichtmal "krimineller" Energie, um diese zu umgehen. Sie werden von Excel automatisch umgangen, wenn man keinen Sicherheits-Suizid durch Herabsetzen der Makrosicherheit begeht.
     
    EarlFred, 16. November 2020
    #6
  7. Hier ein Beispiel einer (ohne Verschleierung) geschützen Datei.

    Mit "Zip" sollte es nicht zu "knacken" sein (außer Experten), der VBA-Code könnte in der Personal.xlsb stehen oder auch als Excel4Macro.
     
    Fennek11, 16. November 2020
    #7
  8. Freigabe nach Kennwortabfrage

    Hallo Aloys und alle andern,
    Vielen Dank für deine (eure) Antwort(en). Ich habe deinen Code zuhause an meinem Privatrechner ausprobiert, aber er funktioniert nicht so wie er sollte, oder ich habe etwas nicht verstanden.

    Wenn ich die Tabelle öffne, erscheint die MsgBox mit der entsprechenden Ablehnungsmeldung, obwohl sich mein Username in der Case Is = …Anweisung befindet.
    Die Ablehnung sollte aber doch nur dann erscheinen, wenn die Tabelle von jemanden geöffnet wird, der einen Username hat, der nicht im Code notiert ist, oder?

    Das hat nun zur Folge, dass ich meine eigene Tabelle nicht öffnen kann (ist natürlich nur eine sonst leere Testtabelle.)

    Ich habe mir dann also etwas ohne Environ(„Username“) gebastelt:

    Private Sub Workbook_Open()
    Dim ID As String
    ID = InputBox("Bitte gebe deine User-Kennung ein", "Abfrage User-Kennung")
    Select Case ID
    Case Is = "Alfred", "Heinrich", "Kerstin", "Sebastian"
    MsgBox "Los geht's!"
    Case Else
    MsgBox "Falsches Passwort", vbOKOnly, "Ablehnung"
    ThisWorkbook.Close
    End Select
    End Sub

    Das reicht mir eigentlich vorerst schon, auch wenn es sicher kaum den Mindeststandard an Sicherheit bietet. Ist aber für die Tabellen, für die diese Userkennungsabfrage gedacht ist, so ausreichend. Statt der Namen gebe ich einfach die Userkennungen der Kollegen in den Code ein.

    Allerdings würde mich jetzt schon noch die erweiterte Variante zu deinem Code interessieren:
    „Wenn es noch etwas "raffinierter" sein soll, könnte man die User-Namen auch einem geschützten und ausgeblendeten Blatt der Datei entnehmen.“

    Ich habe experimentiert, aber es nicht geschafft.

    Also irgendwie so: ID = Worksheets(„Tabelle2“).Range(„A1:A4“).Value
    (Ich glaube, ich erzeuge hier bei einigen Lesern jetzt Lachkrämpfe.)

    Könntest du mir das noch ergänzend beantworten?

    Vorerst vielen Dank.

    Gruß
    Alfred(o)
     
    alfred(o), 19. November 2020
    #8
  9. Dass für deinen „Schutz“ Makros aktiviert werden müssen, er andernfalls wirkungslos ist, ist hinreichend oft gesagt worden.

    Nochmals die ausdrückliche Warnung: Ändere nicht die Sicherheitseinstellungen, damit Makros immer ausgeführt werden. Diese Einstellung würde es Schadsoftware sehr einfach machen (z. B. Kryptogrojaner).
     
    EarlFred, 19. November 2020
    #9
  10. Hallo Alfred,
    Ich halte mich zurück!

    Du solltest aber keinen Lösungsvorschlag kritisieren, den Du nicht verstanden hast.
    Meiner beruhte auf folgender Überlegung.
    • das Programm steht mehreren Arbeitsplätzen zur Verfügung bzw
      mehrere Mitarbeiter teilen sich einen PC
    • ein Mitarbeiter meldet sich auf dem PC mit seiner UserId und seinem Pswd ein
    • beim Starten des Programmes braucht dann beim Open per Code nur noch auf zugelassene BenutzerID geprüft werden.
    • vor Verlassen des Arbeitsplatzes beendet der Mitarbeiter seine Sitzung.
    Das ist m.E. bei den von Dir geschilderten Rahmenbedingungen ein mögliches Vorgehen.

    Ungéachtet dessen, EarlFred hat noch einmal darauf hingewiesen, bietet auch dieses Vorgehen keinen echten Schutz gegen Missbrauch.
     
  11. Hallo Aloys,
    ich habe deinen Lösungsvorschlag nicht kritisieren wollen und bitte verstehe das nicht so. Oder ist eine Verständnisfrage schon eine Kritik?
    Eigentlich wollte ich nur wissen, was ich falsch verstanden habe, weil der Code mich nun selbst blockiert.
    Die Warnungen verstehe ich wohl, nur brauche ich für diese betreffende Tabelle keine besonderen Sicherheitsvorkehrungen. Ich will einfach nur lernen, wie so ein Code geschrieben werden muss. Ich habe nicht vor Tabellen mit sicherheitsrelevanten Daten an fragliche dritte Personen zu schicken.

    Was mir also jetzt nur fehlt ist, wie ich den Code schreibe, dass zum Beispiel vier Userkennungen zum Beispiel auf Tabellenblatt 2 in A1:A4 stehend, erkannt werden, anstatt wie bisher so:
    Case Is = "Alfred", "Heinrich", "Kerstin", "Sebastian"

    Dann wäre ich glücklich und zufrieden und habe was dazugelernt.

    Beste Grüße
    Alfred
     
    alfred(o), 20. November 2020
    #11
  12. Hallo Alfred,

    anbei mein Vorschlag.
    Siehe auch die Hinweise im Blatt2.
     
  13. Freigabe nach Kennwortabfrage

    Servus Aloys
    vielen Dank für deinen zweiten Lösungsvorschlag. In den Code steckt noch sehr viel drin, was ich noch nicht verstehe, muss mit meinem VBA-Buch weitermachen, Seite für Seite wird sich der Schleier des Unwissens dann hoffentlich heben.

    Gestern muss irgendetwas nicht funktioniert haben. Ich antwortete dir ja, dass die Testtabelle mit deinem Code mich blockiert, obwohl ich meinen Username (der nicht einer dieser 4 Namen ist) zusätzlich eingetragen hatte. Aber heute ließ sich diese Tabelle mit auf Anhieb öffnen. Ebenso problemlos funktioniert dein 2. Code, nachdem ich meinen Username in das Tabellenblatt 2 eingetragen hatte.

    Warum? Ich habe seit gestern nichts verändert!

    Allerdings: Als ich gestern die Tabelle nicht öffnen konnte, fragte ich im Direktfenster mit

    ?Environ("Username")

    meinen Username ab und erhielt keine Reaktion. Auch Rechnerneustart brachte nichts. Heute hingegen bekomme ich meinen Username zurück und - oh Wunder, jetzt funktionieren ja auch deine Codes.

    Seltsam.

    Beste Grüße
    Alfred(o)
     
    alfred(o), 20. November 2020
    #13
  14. Hallo Alfred,
    Löblich - dass Du Dich per Lesen weiterbildest.
    Bei Fragen kannst Du Dich aber auch jederzeit hier im Forum melden!
    Routine-mäßig meine Frage hierzu. Hast Du die Datei gespeichert und geschlossen und danach wieder geöffnet?
    Die Prüfung wird nur beim Open der Datei durchgeführt.
    siehe meine Aussage zuvor!

    Und ist damit jetzte das Problem gelöst?
     
  15. Hallo Aloys,
    Ich beschreibe das Vorgefallene nochmal, auch wenn sich vieles wiederholt nur, dass wir nicht aneinander "vorbeischreiben":

    Es geht ja um meine Antwort/Frage in #8, die ja durch das unten beschriebene Ereignis ausgelöst wurde bzw. um die Test-Tabelle die ich mit deinem Code anlegte. Hier habe ich also meinen Username in den Code hinzugefügt, wie du es beschrieben hast, dann natürlich gespeichert und geschlossen. Beim Wiederöffnen bekam ich dann die Ablehnung gem. der MsgBox. Das war in der Nacht 19.11 zum 20.11. Da machte ich dann die beschriebene Abfrage im Direktfenster (natürlich in einer anderen Tabelle, denn in die besagte Test-Tabelle bin ich ja nicht wieder reingekommen.). Die Abfrage ergab kein Ergebnis. >Rechnerneustart > neue Abfrage im Direktfenster > kein Ergebnis.

    Aber gestern Nacht und aktuell bekomme auch im Direktfenster meinen Username wieder zurück. Daher denke ich, dass ausschließlich am 19.11. eine Störung vorlag (welche auch immer), doch auf wundersame Weise tags darauf nicht mehr. Die Tabellen mit deinen Codes öffnen sich nun wie gewünscht.

    Das Einzige, was mich nun interessiert ist, ob das öfters mal vorkommt, dass der eigene Username von Excel nicht erkannt wird und wenn ja, woran es liegt. Die Fragen zu den Codes habe sich für mich bis auf Weiteres erledigt.

    Vielen Dank für die Hilfe.

    Beste Grüße
    Alfred(o)
     
    alfred(o), 21. November 2020
    #15
Thema:

Freigabe nach Kennwortabfrage

Die Seite wird geladen...
  1. Freigabe nach Kennwortabfrage - Similar Threads - Freigabe Kennwortabfrage

  2. Änderungen an der Benutzeroberfläche für die Freigabe eines Kalenders in Outlook

    in Microsoft Outlook Tutorials
    Änderungen an der Benutzeroberfläche für die Freigabe eines Kalenders in Outlook: Änderungen an der Benutzeroberfläche für die Freigabe eines Kalenders in Outlook Outlook für Microsoft 365 Outlook 2016 Office Business Mehr... Weniger...
  3. Fehler bei der Freigabe eines Outlook.com-Kalenders eines privaten oder Home-Kontos für ein ...

    in Microsoft Outlook Tutorials
    Fehler bei der Freigabe eines Outlook.com-Kalenders eines privaten oder Home-Kontos für ein ...: Fehler bei der Freigabe eines Outlook.com-Kalenders eines privaten oder Home-Kontos für ein Office 365 Business-Konto Outlook 2016 Outlook 2013 Outlook.com...
  4. Access Web App Freigaben

    in Microsoft Access Hilfe
    Access Web App Freigaben: Guten Morgen zusammen, ich würde gern eine Access-Anwendung über den Browser für den Kunden zur Verfügung stellen. Der Kunde soll online seine Angaben machen können (damit er nicht Access auf...
  5. Möglichkeiten der Freigabe einer Access-Desktopdatenbank

    in Microsoft Access Tutorials
    Möglichkeiten der Freigabe einer Access-Desktopdatenbank: Möglichkeiten der Freigabe einer Access-Desktopdatenbank Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007...
  6. Freigabe Bildschirm

    in Microsoft Teams Hilfe
    Freigabe Bildschirm: Hallo zusammen: Ich möchte eine Datei unter "Dateien" in Teams anzeigen. Kann ich diese als "Tab in ein neues Fenster verschieben", damit ich dieses Fenster direkt freigeben kann? Wenn ich auf die...
  7. Chat sehen trotz Freigabe des Bildschirms/Dokuments

    in Microsoft Teams Hilfe
    Chat sehen trotz Freigabe des Bildschirms/Dokuments: Hallo, sobald ich z.B. den Bildschirm freischalte, kann ich die Teilnehmer und den Chat nicht mehr sehen. Gibt es hier eine Einstellungsmöglichkeit, damit ich das freigegebende Dokument und die...
  8. Freigaben in SharePoint und OneDrive - Download blockieren

    in Sonstiges
    Freigaben in SharePoint und OneDrive - Download blockieren: Es gibt eine sehr nützliche Funktion in SharePoint und OneDrive. Man kann Dateien Freigeben und den Download blockieren. Sofern es sich um Office Dokumente handelt deaktivieren die lokalen MS...