Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datei vor dem Kopieren schützen





Frage

Hallo, ich mal wieder der Hilfe braucht. Kann man eine Excel-Datei vor Kopieren schützen??? Ich hätte gerne gewusst ob man das verhindern kann, das Daten aus einer Excel-Datei in eine andere kopiert werden kann un den Befehl "Speichern unter" unter, so das die Datei nicht woanders hingespeichert werden kann??? Danke!!!!!!! Gruß Elhamplo

Antwort 1 von coros

Hi Elhamplo,

nachfolgend 2 Makros, die ich vor geraumer Zeit mal für mich selbst erstellt habe, die Annähernd das machen sollten, was Du Dir so vorgestellt hast. Kopiere sie in ein StandardModul.

Sub Symbolleisten_Aktivieren()
With Application
    Rem: Das RollUp Menü, was beim Betätigen der rechten Maustaste erscheint wird deaktiviert
    .CommandBars("Toolbar List").Enabled = True
    Rem: Die Funktion "Anpassen" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Anpassen...").Enabled = True
    Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Makro").Enabled = True
    Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Datei").Controls("Speichern unter...").Enabled = True
End With

Rem: Tastenkombinationen einschalten
Application.OnKey "^x"
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"

Rem: Drag & Drop wieder erlauben
Application.CellDragAndDrop = True

Rem: Schaltflaechen in Menüleiste => Bearbeiten aktivieren
Rem: Ausschneiden
procControlEnableDisable 21, True
Rem: Kopieren
procControlEnableDisable 19, True
Rem: Einfuegen
procControlEnableDisable 22, True
Rem: Inhalte einfuegen
procControlEnableDisable 755, True
Rem: Office-&Zwischenablage
procControlEnableDisable 809, True
End Sub

Sub Deaktivieren()
With Application
    Rem: Das RollUp Menü, was beim Betätigen der rechten Maustaste erscheint wird deaktiviert
    .CommandBars("Toolbar List").Enabled = False
    Rem: Die Funktion "Anpassen" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Anpassen...").Enabled = False
    Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Makro").Enabled = False
    Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Datei").Controls("Speichern unter...").Enabled = False
End With

Rem: Tastenkombinationen deaktivieren
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""

Rem: Drag & Drop ausschalten
Application.CellDragAndDrop = False

Rem: Schaltflaechen in Menüleiste => Bearbeiten aktivieren
Rem: Ausschneiden
procControlEnableDisable 21, False
Rem: Kopieren
procControlEnableDisable 19, False
Rem: Einfuegen
procControlEnableDisable 22, False
Rem: Inhalte einfuegen
procControlEnableDisable 755, False
Rem: Office-&Zwischenablage
procControlEnableDisable 809, False
End Sub


Das Makro "Deaktivieren" solltest Du beim Öffnen der Datei und das Makro "Aktivieren" beim Beenden der Datei ausführen lassen.

Bei Fragen melde Dich bitte.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Elhamplo

Hallo coros,

sorry, das ich mich erst jetzt melde.

Ich bekomme immer eine Fehlermeldung:

Fehler beim kompilieren:

Sub oder Funktion nicht definiert.

und folgende Zeile ist makiert:

procControlEnableDisable 21, False

Danke für die Hilfe!!

Gruß

Elhamplo

Antwort 3 von Elhamplo

Hallo coros,

noch einen kleine Frage. Die Funktion Senden an, kann man die auch ausstellen??

Gruß

Elhamplo

Antwort 4 von bored

Noch mal ne andere Frage:
Ist das ganze Unterfangen nicht ziemlich sinnlos, weil man die Datei auf Betriebssystemebene sowieso beliebig kopieren kann und den Rest einfach beim öffnen der Tabelle durch die Makrosicherheitseinstellungen deaktivieren kann?

Oder du öffnest sie mit OpenOffice und du kannst die ganzen Makros auch schon wieder knicken.

Gegen das Kopieren kann man sich nicht wirklich schützen. Das geht nur durch das Untersagen von Leseberechtigungen, aber dann kann man die Datei auch nicht mehr öffnen.

mfg bored

Antwort 5 von coros

Hallo Elhamplo,

warum da bei Dir ein Fehler kommt, kann ich leider nicht nachvollziehen. Nachfolgend die beiden Makros noch einmal umgestellt, wie sie auch bei Dir funktionieren sollten. Enthalten ist auch das die Funktion "Senden an" deaktiviert wird.

Sub Symbolleisten_Aktivieren()
With Application
Rem: Das RollUp Menü, was beim Betätigen der rechten Maustaste erscheint wird aktiviert
.CommandBars("Toolbar List").Enabled = True
    With .CommandBars("Worksheet Menu Bar")
        Rem: Die Funktion "Anpassen" Im Menüpunkt "Extras" wird aktiviert
        .Controls("Extras").Controls("Anpassen...").Enabled = True
        Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird aktiviert
        .Controls("Extras").Controls("Makro").Enabled = True
        Rem: Schaltflaechen in Menüleiste => Datei aktivieren
        With .Controls("Datei")
            Rem: Speichern unter
            .Controls("Speichern unter...").Enabled = True
            .Controls("Senden an").Enabled = True
        End With
        Rem: Schaltflaechen in Menüleiste => Bearbeiten aktivieren
        With .Controls("Bearbeiten")
            Rem: Ausschneiden
            .Controls("Ausschneiden").Enabled = True
            Rem: Kopieren
            .Controls("Kopieren").Enabled = True
            Rem: Einfuegen
            .Controls("Einfügen").Enabled = True
            Rem: Inhalte einfuegen
            .Controls("Inhalte einfügen...").Enabled = True
            Rem: Office-&Zwischenablage
            .Controls("Office-&Zwischenablage...").Enabled = True
        End With
    End With
End With

Rem: Tastenkombinationen aktivieren
Application.OnKey "^x"
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"

Rem: Drag & Drop einschalten
Application.CellDragAndDrop = True
End Sub

Sub Deaktivieren()
With Application
Rem: Das RollUp Menü, was beim Betätigen der rechten Maustaste erscheint wird deaktiviert
.CommandBars("Toolbar List").Enabled = False
    With .CommandBars("Worksheet Menu Bar")
        Rem: Die Funktion "Anpassen" Im Menüpunkt "Extras" wird deaktiviert
        .Controls("Extras").Controls("Anpassen...").Enabled = False
        Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
        .Controls("Extras").Controls("Makro").Enabled = False
        Rem: Schaltflaechen in Menüleiste => Datei deaktivieren
        With .Controls("Datei")
            Rem: Speichern unter
            .Controls("Speichern unter...").Enabled = False
            .Controls("Senden an").Enabled = False
        End With
        Rem: Schaltflaechen in Menüleiste => Bearbeiten deaktivieren
        With .Controls("Bearbeiten")
            Rem: Ausschneiden
            .Controls("Ausschneiden").Enabled = False
            Rem: Kopieren
            .Controls("Kopieren").Enabled = False
            Rem: Einfuegen
            .Controls("Einfügen").Enabled = False
            Rem: Inhalte einfuegen
            .Controls("Inhalte einfügen...").Enabled = False
            Rem: Office-&Zwischenablage
            .Controls("Office-&Zwischenablage...").Enabled = False
        End With
    End With
End With

Rem: Tastenkombinationen deaktivieren
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""

Rem: Drag & Drop ausschalten
Application.CellDragAndDrop = False

End Sub



Ich hoffe, jetzt klappt’s. Wenn nicht, melden.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von coros

Hi bored,

theoretisch hast Du recht. Man kann aber eine Datei an einen Rechner binden, in dem man die Festplattennummer, den Benutzernamen usw. ausließt und diese so weiterverarbeitet, dass die Datei nicht woanders lauffähig ist.

Auch hast Du recht, was das aktivieren von Makros angeht. Auch hier gibt es einen Trick, der das umgeht, so dass die Datei nur mit Makros oder gar nicht geöffnet werden kann. Da muss man sich aber mit dem Programm VIsual Basic behelfen, damit das funktioniert. Ich mache das bei meinen Dateien so und das funktioniert.

Wie das mit Open Office ist, kann ich nicht sagen, da ich damit nicht arbeite.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von Elhamplo

Hallo coros

hab den Code ausprobiert. Die Funktionen der rechten Maustaste funktionieren aber noch, genauso wie die Shortcuts in der Standardsymbolleiste (die Schere) funktionieren auch noch.

Wie kann man das denn machen das die Datei nur geöffnet werden kann wenn Marko aktiviert ist???

Gruß

Elhamplo

Antwort 8 von coros

Hi Elhamplo,

Schusseligkeitsfehler meinerseits. Ich habe bei meiner ersten Antwort vergessen noch ein Makro mit hier hinzu schreiben. Deshalb hast Du eine Fehlermeldung erhalten. Jetzt aber die beiden Makros plus des dazugehörigen weiteren Makro, wie es funktionieren sollte.

Sub Aktivieren()
With Application
    Rem: Das RollUp Menü, was beim Betätigen der rechten Maustaste erscheint wird aktiviert
    .CommandBars("Toolbar List").Enabled = True
    Rem: Die Funktion "Anpassen" Im Menüpunkt "Extras" wird aktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Anpassen...").Enabled = True
    Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird aktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Makro").Enabled = True
    Rem: Die Funktion "Speichern unter" Im Menüpunkt "Datei" wird aktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Datei").Controls("Speichern unter...").Enabled = True
    Rem: Die Funktion "Senden an" Im Menüpunkt "Datei" wird aktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Datei").Controls("Senden an").Enabled = True
End With

Rem: Tastenkombinationen einschalten
Application.OnKey "^x"
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"

Rem: Drag & Drop wieder erlauben
Application.CellDragAndDrop = True

Rem: Schaltflaechen in Menüleiste => Bearbeiten aktivieren
Rem: Ausschneiden
procControlEnableDisable 21, True
Rem: Kopieren
procControlEnableDisable 19, True
Rem: Einfuegen
procControlEnableDisable 22, True
Rem: Inhalte einfuegen
procControlEnableDisable 755, True
Rem: Office-&Zwischenablage
procControlEnableDisable 809, True
End Sub

Sub Deaktivieren()
With Application
    Rem: Das RollUp Menü, was beim Betätigen der rechten Maustaste erscheint wird deaktiviert
    .CommandBars("Toolbar List").Enabled = False
    Rem: Die Funktion "Anpassen" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Anpassen...").Enabled = False
    Rem: Die Funktion "Makro" Im Menüpunkt "Extras" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Extras").Controls("Makro").Enabled = False
    Rem: Die Funktion "Speichern unter" Im Menüpunkt "Datei" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Datei").Controls("Speichern unter...").Enabled = False
    Rem: Die Funktion "Senden an" Im Menüpunkt "Datei" wird deaktiviert
    .CommandBars("Worksheet Menu Bar"). _
     Controls("Datei").Controls("Senden an").Enabled = False
End With

Rem: Tastenkombinationen deaktivieren
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""

Rem: Drag & Drop ausschalten
Application.CellDragAndDrop = False

Rem: Schaltflaechen in Menüleiste => Bearbeiten aktivieren
Rem: Ausschneiden
procControlEnableDisable 21, False
Rem: Kopieren
procControlEnableDisable 19, False
Rem: Einfuegen
procControlEnableDisable 22, False
Rem: Inhalte einfuegen
procControlEnableDisable 755, False
Rem: Office-&Zwischenablage
procControlEnableDisable 809, False
End Sub


Sub procControlEnableDisable(intId As Integer, _
bolStatus As Boolean)

Dim cmbSuche As CommandBar
Dim cmbcSteuerelement As CommandBarControl

On Error Resume Next

For Each cmbSuche In Application.CommandBars
Set cmbcSteuerelement = _
cmbSuche.FindControl(ID:=intId, recursive:=True)

If Not cmbcSteuerelement Is Nothing Then
cmbcSteuerelement.Enabled = bolStatus
End If
Next
End Sub


Wegen der 5000er Zeichengrenze, der Rest in einem neuen Beitrag

Antwort 9 von coros

Hi,

hier gehts nun weiter.

Man kann eine Datei dazu zwingen, dass sie immer mit aktivierten Makros geöffnet wird, in dem man in Visual Basic eine Exe- Datei schreibt. Zusätzlich dazu wird der Exceldatei ein Lesekennwort vergeben, so dass die Datei ohne die Exe- Datei nicht geöffnet werden kann. Mit der Exe- Datei wird dann die Exceldatei geöffnet, ebenso wird über die Exe- Datei das Passwort mit übergeben. Positiver Nebeneffekt, wenn über eine Exe-Datei gestartet, wird die Makroabfrage ignoriert und die Datei wird immer mit aktivierten Makros gestartet.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 10 von Elhamplo

Hallo coros,

danke für den Code. Einfach Super!!!!! Danke

Jetzt zu dieser exe Datei. Die verknüpfungen der Datei die mit der exe Datei geöffnet wird die funktionieren aber weiter???

Hast Du mal ein Beispiel für so eine exe Datei????

Gruß

Elhamplo

Antwort 11 von coros

Hallo Elhamplo,

Gegenfrage, hast Du Visual Basic 5.0, bzw. 6.0?

Was für Verknüpfungen meinst DuU? Die Exe- Datei macht nichts weiter als die Exceldatei zu öffnen und das Leseschutzpasswort zu übergeben. Im Prinzip ist das eine Automation von dem, wie Du sonst Deine Datei öffnest.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 12 von Elhamplo

Hallo,

Ahh, jetzt versteanden.

Nee hab kein Visual Basic 5 oder 6.

Kann ich also dann vergessen oder nicht???

Gruß und besten Dank

Elhamplo

Antwort 13 von coros

Hi Elhamplo,

na vergessen nicht ganz. Schick mir mal eine E-Mail (Adresse müsstest Du ja noch haben) in die Du mir den Dateinamen und das Passwort, welches Du als Lese/- Schreibschutzkennwort vergeben würdes, aufschreibst. Wenn ich heute Abend zu Hause bin (hier habe ich im Moment kein Visual Basic) erstelle ich Dir dann so eine Exe-Datei und schicke sie Dir dann zu.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: