1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

EXCEL VBA Meldefenster durch Sendkey Passwort verhindern

Discussion in 'Office-Programme' started by wer_pa, Feb 18, 2009.

Thread Status:
Not open for further replies.
  1. wer_pa

    wer_pa Byte

    Hallo Gemeinde,

    Ich habe eine “Lesegeschützte” Exceldatei, die beim normalen Öffnen den aktuellen User in einer verdeckten Zelle speichert. Der Inhalt dieser s.g. „User“ Zelle ist mit einer anderen s. g. Excel „Steuerungstabelle“ direkt verknüpft. Wenn ich nun diese „Steuerungstabelle“ öffne wird ein Meldefenster ausgegeben und ich werde zur Passworteingabe für die “Lesegeschützte” Exceldatei aufgefordert, damit die Verknüpfung in der Steuerungstabelle aktualisiert werden kann.

    Ich möchte dass beim Öffnen der „Steuerungstabelle“ kein Meldefenster mehr erscheint, jedoch die Datenverknüpfung natürlich aktualisiert wird. Hierbei muß sichergestellt sein das kein Öffnen der „Lesegeschützten“ Exceldatei erfolgt.

    Versuche z. B. mit Sendkey das Passwort vorher an das Meldfenster zu senden schlugen leider fehl. Des Weiteren kenne ich nur noch den VBA Weg die „Lesegeschützte“ Datei z. B. mit
    Workbooks.Open Filename:="Lesegeschütze.xls", Notify:=False, Password:="007"
    zu öffnen, was aber mit dem Aufruf der Steuerungstabelle nicht erfolgen darf.

    Hat hier eine gute Seele einen Tipp für mich wie das Problem mittels VBA zu lösen wäre?

    Gruß

    wer_pa
     
  2. Hascheff

    Hascheff Moderator

    Wie wäre es, wenn du den Inhalt der verdeckten Zelle auslagerst? In Windows3.1-Zeiten, als es noch keine Registry gab, habe ich mal per VBA in INI-Dateien geschrieben oder daraus gelesen. Das geht heute sicher noch. Wahrscheinlich kann VBA auch in die Registry schreiben.

    (Äh, die Makrosprache hieß damals noch nicht VBA, macht aber nichts, geht bestimmt noch)

    Da dein Problem im Wesentlichen dadurch entsteht, dass Excel-Dateien sich nicht automatisch öffnen dürfen, vermute ich, dass du entweder Dinge tust, die keiner merken darf oder Excel überfordert ist/bald sein wird. Deshalb noch mein Standardhinweis:
     
  3. wer_pa

    wer_pa Byte

    Hallo Hascheff,

    Danke für die Rückmeldungen

    Gruß

    wer_pa
     
  4. Urs2

    Urs2 Megabyte

    Zur Information

    Word-VBA kann direkt in die Registry schreiben mit System.PrivateProfileString
    Excel-VBA kann das nicht direkt, nur über die Deklaration von Kernel-Funktionen.

    Bei INI-Dateien ist es ähnlich.

    Was lesegeschützt ist, weiss ich nicht, es geht wohl um schreibgeschützt.

    Ob Auto-Makros überhaupt funktionieren, wenn die XLS geschützt ist?
    Ich erinnere mich schwach, etwas darüber gelesen zu haben...

    Gruss Urs
     
  5. Hascheff

    Hascheff Moderator

    Deshalb ist "lesegeschützt" in Anführungszeichen gesetzt, es soll einen von ihm verliehenen Status darstellen. Absoluter Leseschutz ist natürlich Unsinn, dafür gibt es die Zugriffsrechte des Betriebssystems. Aber er möchte angezeigt bekommen, wer die Datei geöffnet hat. Kompliziert wird es, weil der Öffner das scheinbar nicht merken soll.

    Da fällt mir ein, kürzlich von einem Tool gelesen zu haben, welches definierte Meldungsfenster blitzschnell automatisch "wegklickt".
     
  6. wer_pa

    wer_pa Byte



    Hi Hascheff,

    .....Da fällt mir ein, kürzlich von einem Tool gelesen zu haben.....
    Hast Du noch ggf. die Bezugsquelle?

    Gruß
    wer_pa
     
  7. Urs2

    Urs2 Megabyte

    Ich benutze das hier >>> http://www.johanneshuebner.com/ge/clickoff.shtml

    Nach etwas Ueben und Probieren klappt es ganz gut. Passwörter wären dann aber offen gespeichert...


    Du lässt wohl in der anderen Tabelle mit einem AutoOpen-Makro die Daten dort in eine versteckte Zelle schreiben?

    Dann kann doch das Makro direkt in eine andere ungeschützte XLS schreiben. Entweder in die Steuerungstabelle oder, wenn diese auch geschützt ist, in irgendeine freie Tabelle, wo Du die Werte dann abholen kannst.

    Falls die beiden PCs nicht gleichzeitig in Betrieb sind, halt in eine XLS auf dem Server.

    Gruss Urs
     
  8. Hascheff

    Hascheff Moderator

    Danke, Urs. Ich weiß nur noch, dass es in irgendeiner PCWelt erwähnt wurde.

    @ wer_pa: Du kannst im Zitat löschen und musst nicht nach dem Zitat noch mal zitieren.
     
  9. wer_pa

    wer_pa Byte

    Hallo Urs2,

    Dank für die Rückmeldung.
    Ich versuche nachfolgend das Problem noch mal zu beschreiben.

    1.) Lesegeschützte ”Datendatei"
    Diese Datei ist eine auf einem Netzlaufwerk abgelegte Datendatei die von unterschiedlichen Usern täglich mit Daten ergänzt wird. Zur Verhinderung das diese Datei aus diesem Netzlaufwerk unbewusst durch einen User verschoben oder gar gelöscht wird, habe ich diese Datei mit einem Lese-/Schreibschutzkennwort versehen. Hierdurch kann ein User die Datei auf dem Netzlaufwerk nicht selbst öffnen, da ihm das Passwort nicht bekannt ist. Da dies allen Usern bekannt ist, erfolgt kein direkter Zugriffsversuch mehr auf diese Datei da er sie ja nicht öffnen kann.

    2.) Steuerungstabelle
    Diese besteht aus einem Excel Sheet, u. a. mit einem "Button" inkl. hinterlegten VBA Code zum Aufruf der o. g. Datendatei mit dem Lese-/Schreibschutzkennwort. Beim VBA Zugriff auf diese Datei wird das Passwort übermittelt und die Datei steht dem User in der ungeschützen/geöffneten Form für seine Dateneinträge zur Verfügung.

    3.) Problem:
    Da ich den Zellinhalt einer Zelle in der Datendatei mit einer Zelle in der Steuerungstabelle verknüpft habe, erscheint beim Laden/Öffnen der Steuerungstabelle ein Meldefenster/Eingabefenster mit der Aufforderung das Passwort für den Zugriff auf die Datendatei, zwecks Aktualisierung der Verknüpfung, einzugeben und mit "Ok" zu bestätigen. Da mir nichts anderes eingefallen ist habe ich halt versucht das "Passwort" und die "OK" Bestätigung mittels der Option Sendkey an das Meldefenster/Eingabefenster zu übergeben, was aber leider nicht funktioniert. Ich habe meine gesehen zu haben das die Funktion Sendkey zwar ausgeführt wird. jedoch aber leider erst nach dem aufpoppen des Melde-/Eingabefensters. Eigentlich benötige ich nur die Möglichkeit die Verknüpfung der Steuerungstabelle zu aktualisieren, ohne dabei die Datendatei mit dem Passwort öffnen zu müssen.

    4.) Übergangslösung:
    Zur Zeit habe ich das Problem so gelöst, dass ich beim Öffnen der "Lesegeschützen" Datei über die Steuerungstabelle den Usernamen in eine andere versteckte Excel mittel VBA Code schreibe und diese dann mit einem einfachen Schreibschutzkennwort versehe. Der Username läßt sich nun jederzeit aus der versteckten Excel Datei herauslesen, da diese ja nicht, wie jedoch die Datendatei, lese geschützt ist.

    Dank für die Hilfestellung

    Gruß

    wer_pa
     
  10. Urs2

    Urs2 Megabyte

    Hallo wer_pa

    Also ist doch nur die Verknüpfung für den Aerger zuständig - da sehe ich keine Möglichkeit! Diese Verknüpfung muss weg.

    - Der User öffnet die Steuerungsdatei und diese kann über einen Button die Datendatei entsperren und öffnen. Richtig?
    - beim Oeffnen (oder beim Schliessen) schreibt die Datendatei den Usernamen (und vielleicht noch Zeit und Datum) in eine ihrer eigenen Zellen. Richtig?

    Was wäre denn jetzt die Aufgabe dieser Verknüpfung?
    Soll sie den Inhal der Zelle in der Datendatei in die Steuerungsdatei kopieren?
    Wohl kaum, letztere ist ja frei zugänglich und kann von jedermann editiert werden...
    ...oder hat sie geschützte Blätter?

    Aber die Steuerdatei könnte dann ja direkt bei sich selbst doch den Namen des gleichen Users aufschreiben?

    Das Ganze ist etwas verwirrend... was den Sinn angeht...

    Muss denn der User überhaupt die ganze Datendatei sehen?
    Reicht es nicht, wenn ihm ein Userform präsentiert wird, in das er seine Angaben eingeben kann?

    Dann könnte man im Userform schon schon alle üblichen Fehleingaben abfangen und wenn alles bereinigt ist, die Eingaben dorthin schreiben schreiben lassen, wo sie hin gehören.

    Der User bekommt davon dann gar nichts mit... oder zumindest kann er daran nichts verändern oder falsch machen...

    Was meinst Du?

    Gruss Urs
     
  11. Hascheff

    Hascheff Moderator

    Hallo wer_pa,
    Urs' Antwort bestärkt mich in dem Gefühl, dass Excel hier überfordert ist. Erst mal meine Standard-Antwort für diesen Fall, zwei schon häufiger verwendete Zitate:
    Solltest du dich zum Umstieg entscheiden - kürzlich gab es hier eine Frage zur Rechteverwaltung in Access:
    :guckstdu: Hier und dort.
    Ich habe zwar selbst noch nicht mit der Rechteverwaltung zu tun gehabt, aber ich hab mir das schon mal angesehen und bin mir sicher, dass du damit dein Problem lösen würdest.

    Zu beachten ist, dass die Access-Rechteverwaltung vollkommen unabhängig von der Rechteverwaltung des Betriebssystems arbeitet.
     
Thread Status:
Not open for further replies.

Share This Page