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.
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.
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 SubDas 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
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
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
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.
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.
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 SubIch 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.
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
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.
Wegen der 5000er Zeichengrenze, der Rest in einem neuen Beitrag
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.
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
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.
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
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.
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.

