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

Verknüpfung PW-geschützte Excel-Dateien

Discussion in 'Office-Programme' started by colocho, Dec 31, 2009.

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

    colocho Byte

    Hallo,

    da ich bisher leider in keinem Forum fündig geworden bin, versuche mal mein Glück mit einem neuen Thread:

    Wir haben bei der Arbeit rund 15 Mitarbeiter mit zu erreichenden Zielen.
    Jeder Mitarbeiter hat zu diesem Zweck im gemeinsamen Abteilungslaufwerk eine Excel-Datei, in die er Abschlüsse einträgt. Um ein Mindestmaß an "Sicherheit" zu haben ist jede Datei passwort geschützt. Das PW kennen nur der jeweilige Mitarbeiter und der Leiter.

    Zudem gibt es eine Hauptstatistik, in der alle Ergebnisse zusammengefasst werden.
    Auf diese Statistik sollen alle zugreifen können.

    Die Problematik ist nur, dass man beim Öffnen der Datei alle 15 Passwörter eingeben muss... Was zum Einen sehr umständlich ist und zum Anderen nicht möglich, da jeder Mitarbeiter eben nur sein eigenes PW kennen soll/darf.

    Nun meine Frage: Wie kann ich das umgehen?
    Kann ich die Passwörter in einem Makro hinterlegen, dass beim Öffnen der Datei die Kennwörter "eingibt" und somit jeder der Abteilung die Hauptstatistik öffnen kann?


    Nochmal kurz und knapp:
    15 Dateien mit unterschiedlichen Passwörter.
    Zusammengeführt in einer Hauptstatistik, die ohne Passworteingabe zu öffnen sein soll und trotzdem die Summe aller 15 Dateien enthält.

    Vorab danke für jede Hilfe. :-)

    MfG c
     
  2. Urs2

    Urs2 Megabyte

    Hallo colocho

    Jetzt ruft die Sammeldatei die Daten aus den 15 passwortgeschützten Dateien ab. Kannst Du das nicht umkehren ?

    Jede der 15 Dateien enthält ein Makro, das zB so etwas macht >

    - das Auto-Makro wird beim Schliessen der Einzel-Datei ausgeführt
    - es schreibt seine Angaben in die entsprechenden Zellen der nicht passwortgeschützten Sammel-Datei.

    Gruss Urs
     
  3. colocho

    colocho Byte

    Das hört sich gut an.
    Nur, wie mach ich das? ^^

    Tut mir Leid, bin hinsichtlich der makro-Programmierung noch relativ unbeholfen und komme mit der excel-Hilfe nicht gerade gut voran.

    MfG (und schonmal n guten Rutsch :-) )
     
  4. Urs2

    Urs2 Megabyte

    Hallo colocho

    Danke für die Wünsche und auch Dir die besten Wünsche für 2010.

    Ich habe Dir etwas vorbereitet, wo Du das Grundprinzip siehst und schauen kannst, ob es sich für Deinen Fall eignet.

    Mache dazu 2 neue leere Excel-Dateien auf Deinem PC >

    1. "c:\temp\TestDatei-Sammel.xls" mit 2 Arbeitsblättern "Tabelle1" und "Tabelle2"
    Du kannst sie anderswo speichern, aber dann den Pfad im Code anpassen

    2. "TestDatei-Einzel" mit einem Arbeitsblatt, irgendwo gespeichert >> das wäre eine der fünfzehn...
    Im Blatt im Bereich "A1:E3" füllst Du alle 15 Zellen mit unterschiedlichen Zeichen oder Zahlen

    In der "TestDatei-Einzel" >>> Rechtsclick auf Tabellenblatt-Reiter >>> Code anzeigen...
    Im VB-Editor kopierst Du diesen Code komplett ins grosse weisse Feld

    Code:
    Sub DatenInSammelDatei()
    
    Dim wbSammel As Workbook, strSammelPfad As String, strSammelDatei As String
            'Name der Sammeldatei
    strSammelDatei = [COLOR="Red"]"TestDatei-Sammel.xls"[/COLOR]
            'Pfad zur Sammeldatei, mit Backslash am Ende
    strSammelPfad = [COLOR="red"]"c:\temp\"[/COLOR]
            'stellt Bilschirmerneuerung ab >> User merkt gar nicht...
            '...dass Sammeldatei geöffnet, beschrieben und wieder geschlossen wird...
    Application.ScreenUpdating = False
            'prüft, ob Sammeldatei etwa schon geöffnet ist
    On Error Resume Next
    Set wbSammel = Workbooks(strSammelDatei)
            'wenn nicht geöffnet, öffnet sie
    If wbSammel Is Nothing Then
        Workbooks.Open (strSammelPfad & strSammelDatei)
        Set wbSammel = Workbooks(strSammelDatei)
    End If
    
            'schreibt Inhalt von Zellen in Einzeldatei in Zellen der Sammeldatei
    With ThisWorkbook
            'der 1.Teil ist Blattname+Bereich in der Einzeldatei
            'der 2.Teil ist Blattname+Bereich wohin in die Sammeldatei kopiert werden soll
        .Sheets("Tabelle1").Range("A1:A3").Copy wbSammel.Sheets("Tabelle1").Range("C2")
        .Sheets("Tabelle1").Range("A1:D1").Copy wbSammel.Sheets("Tabelle1").Range("B10:E10")
        .Sheets("Tabelle1").Range("A1:D3").Copy wbSammel.Sheets("Tabelle2").Range("C3:F5")
        'usw - was auch noch kopiert werden soll
        'usw
    End With
    
            'speichert und schliesst die Sammeldatei
        wbSammel.Close Savechanges:=True
            'räumt auf
    Set wbSammel = Nothing
            'schaltet Bildschirmerneuerung wieder ein
    Application.ScreenUpdating = True
    
    End Sub
    Die beiden roten Angaben im Code ev. Deinen Name+Pfad anpassen.
    Dann das Makro in der TestDatei-Einzel ausführen... und schauen was in der TestDatei-Sammel jetzt steht...

    Du kannst dann die TestDatei-Sammel auf den Server stellen (Pfad anpassen) und schauen ob es dort auch funktioniert...

    Bedingungen >
    1. Die einzelnen User müssen auf dem Server Schreibrechte für diese XLS haben, das beschliesst der Server-Chef
    2. Die zu beschreibenden Blätter in der XLS auf den Server dürfen nicht schreibgeschützt sein.
    Wenn doch, könnte der MakroCode diese Seiten entsperren, etwas hinschreiben und dann wieder sperren.

    Frohes Testen...

    Gruss Urs
     
  5. colocho

    colocho Byte

    Hi,

    danke für die Arbeit, die du dir gemacht hast.
    Ich werde das Ganze morgen ausprobieren (da ich heute das erste Mal in diesem jahr wieder zu Hause bin) und dir Dienstag Abend Bericht erstatten :-)

    Gruß
    Chris

    PS: Ist die Passworteingabe damit umgangen?
     
  6. Urs2

    Urs2 Megabyte

    ...aber sicher ist sie umgangen, das war ja der Zweck der Uebung.

    Das Problem war, dass die Sammeldatei Werte aus den 15 passwortgeschützten Einzeldateien abrufen musste.
    Wenn jeder User sein Passwort dort hinterlegen müsste, wäre sein Passwort zumindest nicht mehr sehr geheim...
    Wenn der User dann sein Passwort ändert (zB weil die neue Freundin einen anderen Namen hat...), funktioniert gar nichts mehr...
    Dazu kommt noch, dass die 15 Einzel-PCs jederzeit angemeldet sein müssen, sonst könnte ja nicht aktualisiert werden.

    Jetzt passiert folgendes >
    1. die Sammeldatei ist selbst nicht passwortgeschützt, sie ruft keine Daten aus den Einzeldateien ab (also keine Links dorthin).
    2. der User öffnet seine Datei mit seinem Passwort.
    3. bei Bedarf sendet er per Makro seine Daten an die Sammeldatei
    4. dort sind sie jetzt für alle sichtbar...


    Zu den beiden erwähnten Bedingungen gehört noch dazu >
    3. Die TestDatei-Sammel.xls auf dem Server muss in sich natürlich auch die Freigaben für das gemeinsame Bearbeiten haben (Excel >Extras >Arbeitsmappe freigeben...)

    Gruss Urs
     
    Last edited: Jan 4, 2010
  7. colocho

    colocho Byte

    Als ich heute morgen bei der Arbeit ankam fiel mir schon auf, dass die Frage überflüssig war... tut mir Leid; hattest es ja vorher schon erläutert -.-

    Der erste Test heute hat nicht funktioniert, allerdings habe ich nicht die Einstellungen für das gemeinsame Bearbeiten kontrolliert.

    Das mache ich morgen und melde mich dann nochmal.

    Und nochmal Danke für die Geduld und Hilfe ;-)

    LG
     
  8. Urs2

    Urs2 Megabyte

    Hallo Chris,

    Du solltest beide Dateien zuerst einmal auf Deinem PC lokal installieren.
    Dann siehst Du, ob das im Prinzip für Deine Zwecke überhaupt verwendbar ist.

    Die Einstellungen für die gemeinsame Bearbeitung der Sammeldatei auf dem Server kommen dann später...

    Gruss Urs
     
  9. colocho

    colocho Byte

    Das habe ich instinktiv sogar erstmal gemacht ;-)

    Noch läuft es aber nicht.
    Ich bleibe aber dran und melde mich Freitag nachmittag/abend nochmal an gleicher Stelle :-)

    Gruß
    C
     
  10. Urs2

    Urs2 Megabyte

    Hallo Chris

    ...läuft nicht... sehr hilfreiche Fehlerbeschreibung !

    Ein gestartetes Makro kann fünf Sachen machen >
    - nichts, nur wenn überhaupt nichts drin steht
    - Mist, wenn Mist drin steht
    - viel rechnen, aber kein Resultat liefern, wenn dieser letzte Befehl vergessen wurde oder ins Leere führt
    - eine Fehlermeldung auswerfen, wenn ein Fehler drin ist
    - oder das was es tun soll

    Mein Makro tut auf meinem PC was es soll, also müsste es auf Deinem PC, ohne den Server und seine Berechtigsprobleme, das doch auch tun. Ich ahne aber so etwas...

    Hast Du das Makro überhaupt einmal gestartet ?
    Direkt aus dem VB-Editor oder aus Excel >Extras >Makros >dieses Makro auswählen

    >>> Es ist noch kein Automakro, nur zum Testen braucht es das nicht und solange man nichts genaueres weiss, kann man die auslösende Bedingung auch noch nicht festlegen.

    Gruss Urs
     
  11. colocho

    colocho Byte

    Hi Urs,

    auf meinem Heim-PC funktioniert das Makro einwandfrei.
    Bei der Arbeit habe ich es ebenfalls ausprobiert - auf meinem persönlichen Laufwerk (habe es auch selber ausgeführt, da ich gemerkt habe, dass es noch kein Auto-Makro ist :-) ). Aber ohne große Reaktion.

    Es passiert folgendes: Wenn ich das Makro ausführe, kopiert es die entsprechenden Zellen zwar in die Zwischenablage, fügt sie aber nicht in der Zieldatei ein.

    Ich hoffe die Beschreibung ist ok.

    Gruß
    Chris
     
  12. Hascheff

    Hascheff Moderator

    Hast du Laufwerk, Pfad, Namen und Zugriffsrechte der Sammeldatei kontrolliert?
     
  13. colocho

    colocho Byte

    Laufwerk, Pfad und Namen habe ich mehrmals kontrolliert. :-)
    Inwiefern meinst du das mit den Zugriffsrechten?
    Auf mein persönliches Laufwerk kann ich als einziger zugreifen O.o (tut mir Leid, wenn ich das jetzt vollkommen falsch verstanden habe)

    Gruß
    Chris
     
  14. AntiDepressiva

    AntiDepressiva CD-R 80

    Ich weiß gar nicht, warum man sich das so umständlich macht ^^

    Man legt die Exceldateien in einen Ordner und vergibt Freigabebrechtigungen ausschließlich für die berechtigten User.
    Somit haben auch nur diese Zugriff auf die Dateien, schon allein über ihre Netzwerkanmeldung.

    Paßworte in den Dateien sind somit überflüssig und das ganze andere Heckmeck entfällt dann auch.
     
  15. colocho

    colocho Byte

    Ich weiß nicht, ob es so einfach geht... ;-)

    Wir sind ein Betrieb mit rund 1500 Mitarbeitern. Das hier im Thread beschriebene Problem gilt aber (zumindest noch) nur für eine Abteilung = ca. 15-20 Mitarbeiter.
    Ich weiß nicht, ob wir die Berechtigung haben, entsprechende Zugriffsrechte zu vergeben. Und eine Genehmigung über den Leiter der IT-Orga halte ich für noch umständlicher - glaube mir ^^

    LG
    Chris
     
  16. AntiDepressiva

    AntiDepressiva CD-R 80

    Naja, ich bin kein organisatorischer Korinthenkacker, ich stehe auf der technischen Seite und von da aus betrachtet wäre es nun mal das effektivste.

    Vielleicht sollte man da mal den kleinen Dienstweg versuchen, in großen Firmen geht das, warum sollte das bei Euch nicht auch gehen ;)
    Die Cafeteria ist meist ein guter Punkt, um Admins zu treffen :D
     
  17. Urs2

    Urs2 Megabyte

    Hallo Chris,

    Zu Organisation und Berechtigungen will ich nichts schreiben, ich bleibe bei meinen Leisten...

    Ich setze jetzt einmal voraus...
    1. die 15 Einzeldateien enthalten viele Angaben, die jeder geheim halten möchte...
    2. ein Resultat/Konzentrat aus der Einzel- muss aber in die Sammeldatei.
    3. Deinem Eingangspost entnehme ich, dass die Sammeldatei in der Einzeldatei auf Deinem persönlichen Laufwerk lesen könnte... wenn nur das Schaiss-Passwort nicht im Workbook wäre...
    4. auf Deinem persönlichen Laufwerk kannst Du machen was Du willst - Dateien erstellen, beschreiben, löschen usw
    ... stimmen meine Annahmen im Prinzip ?


    Dann müsstest Du doch auf Deinem persönlichen Laufwerk eine nicht-passwortgeschützte XLS erstellen und beschreiben können, die nur die weiterzuleitenden Daten enthält ?
    Die Sammeldatei greift dann auf diese ungeschützte Hilfs-Datei zu...

    Dann setze diesen Code in meine Beispieldatei "TestDatei-Einzel.xls"
    >>> aber dieses Mal im VB-Editor in den Ordner "DieseArbeitsmappe" (oder ThisWorkbook) >
    >>> jetzt ist es ein Automakro, bei jedem Speichern wird es ausgeführt !

    Code:
    Option Explicit
    
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
            '=AutoMakro, startet bei jedem Speichern dieser Datei
            
    Dim extName, thisFile, xlExt, hlpFile, thisPath, wbkHlp As Workbook
    
                'stellt Bilschirmerneuerung ab >> User merkt gar nicht...
                '...dass HilfsDatei geöffnet, beschrieben und wieder geschlossen wird...
    Application.ScreenUpdating = False
                'Namensanhang für Hilfsdatei > wird "DeinDateiName-Public.xls"
    extName = [COLOR="Red"]"-Public"[/COLOR]
            
    With ThisWorkbook
                'Name dieser Einzeldatei ohne Endung
        thisFile = Left(.Name, InStrRev(.Name, ".") - 1)
                'Excel2007 oder früher
        If Len(.Name) - InStrRev(.Name, ".") = 3 Then xlExt = ".xls" Else xlExt = ".xlsx"
                'Pfad der Einzeldatei mit Backslash
        thisPath = .Path & "\"
    End With
                'Name der Hilfsdatei
    hlpFile = thisFile & extName & xlExt
                'existiert die Hilfs-Datei überhaupt schon?
    On Error Resume Next
                'wenn nicht, erstellt die Datei
    If Dir(thisPath & hlpFile) = "" Then
        Set wbkHlp = Workbooks.Add
        Application.DisplayAlerts = False
        wbkHlp.SaveAs Filename:=thisPath & hlpFile
        Application.DisplayAlerts = True
                'wenn nötig... setzt noch ein 2. Blatt in die HilfsDatei
        wbkHlp.Worksheets.Add after:=Worksheets(1)
    Else
                'wenn schon vorhanden...
        Set wbkHlp = Workbooks(hlpFile)
                'wenn nicht geöffnet, öffnet sie
        If wbkHlp Is Nothing Then
            Workbooks.Open (thisPath & hlpFile)
            Set wbkHlp = Workbooks(hlpFile)
        End If
    End If
    
    'tut ab jetzt dasselbe wie vorher,
    
            'schreibt Inhalt der Zellen in DieserDatei in Zellen der HilfsDatei
    With ThisWorkbook
    '        'der 1.Teil ist Blattname+Bereich in diser Datei
    '        'der 2.Teil ist Blattname+Bereich wohin in die HilfsDatei kopiert werden soll
        .Sheets("Tabelle1").Range("A1:A3").Copy wbkHlp.Sheets("Tabelle1").Range("C2")
        .Sheets("Tabelle1").Range("A1:D1").Copy wbkHlp.Sheets("Tabelle1").Range("B10:E10")
        .Sheets("Tabelle1").Range("A1:D3").Copy wbkHlp.Sheets("Tabelle2").Range("C3:F5")
    '    'usw - was auch noch kopiert werden soll
    '    'usw
    End With
    
    '        'speichert und schliesst die Sammeldatei
        wbkHlp.Close Savechanges:=True
    '        'räumt auf
    Set wbkHlp = Nothing
    '        'schaltet Bildschirmerneuerung wieder ein
    Application.ScreenUpdating = True
    
    End Sub
    Du musst nur den roten extName anpassen, wenn Du willst, um den Rest kümmert sich das Makro selbst...

    - Deine Datei kann irgendwie heissen und irgendwo gespeichert sein.
    - das Makro erzeugt im gleichen Verzeichnis eine Hilfsdatei mit gleichem Namen, aber mit der Verlängerung extName, also >
    "DeinDateiName-Public.xls" oder automatisch .xlsx bei Excel2007
    - wenn die Datei schon existiert, wird sie geöffnet (und keine neue gemacht)
    - dann beschrieben, gespeichert und wieder geschlossen
    ... der Server soll jetzt schauen, wie er an diese nicht gesperrte Datei kommt...

    Gruss Urs
     
  18. AntiDepressiva

    AntiDepressiva CD-R 80

    Nö.
    Denn damit kommen wir wieder zu den Berechtigungen.
    Wenn die Datei auf einer Freigabe liegt, auf die Nur 1 (EIN) User Berechtigungen hat, dann kann auch kein anderer User (und somit auch keine Datei, die ein anderer User aufruft), Daten aus dieser Datei abrufen.
    Denn IMHO sendet keine Exeldatei Daten irgenwohin, sondern es werden Daten aus ihr abgerufen...

    Somit kommt bei Abruf der Daten aus dieser (eben NICHT ungeschützen) Datei, jedesmal die Passwortabfrage zur Authentifizierung des korrekten Users.
    Somit müßte jeder User, der mit dieser Sammeldatei arbeitet, die Paßworte der User besitzen, auf deren privaten Laufverken sich die Einzeldateien befinden und das ist ja wohl gegen so gegen jeden Sinn einer paßwortgeschützen Authentifizierung ^^
     
  19. Urs2

    Urs2 Megabyte

    Möglicherweise hast Du schon recht, ich will mich auch gar nicht über Sachen auslassen, die ich zu wenig verstehe.
    Mit meiner vielleicht naiven Logik, und so wie ich den TO verstehe >

    1. die Sammeldatei (des Chefs) liegt irgendwo, alle User dürfen sie dort zumindest lesen.
    2. die Einzeldateien liegen in Verzeichnissen, wo nur der jeweilige User und der Chef... und damit seine Sammeldatei Zugriff haben.
    3. das Problem sind die Excel-Passwörter mit denen die einzelnen XLS-Dateien gegen deren Oeffnen geschützt sind.

    Wenn nun die Sammeldatei geöffnet wird, muss sie die Links auf die neue Hilfsdatei aktualisieren.
    Die Hilfsdateien sind nicht passwortgeschützt und liegen in einem Verzeichnis, wo die Sammeldatei (des Chefs) Zugriff hat.

    Könnte es denn so funktionieren ?

    Gruss Urs
     
  20. AntiDepressiva

    AntiDepressiva CD-R 80

    Wenn ich ehrlich sein soll, ist jetzt der Punkt gekommen, wo Gedankengänge von Programmierern mit denen von Technikern nicht mehr konform gehen.

    Sprich, ich kann Dir nicht mehr folgen :D
     
Thread Status:
Not open for further replies.

Share This Page