Gesperrte Felder mit Makro bearbeiten

Hi,

Ich habe mehrere Felder in einer Excel-Tabelle, die entweder TRUE oder FALSE enthalten. Diese Felder werden sowohl von Makros als auch Formeln benutzt. Mein Problem ist, dass ich nicht will, dass Benutzer, wenn die Sheets gesperrt sind, diese Felder anklicken können. Wenn ich sie aber sperre, können die Makros die Werte in den Feldern nicht mehr ändern.

Gibt es eine Möglichkeit,
a) die Felder von Makros, aber nicht von Benutzern editierbar zu machen
oder
b) TRUE/FALSE-Variablen zu benutzen, die 1. von Formeln benutzt werden können (im Sinne von =IF(K3,„ja“,„nein“)), und 2. beim Schließen der Tabelle nicht verloren gehen (Visual Basic-Variablen gehen also schon mal deswegen nicht - oder?)

Ich wäre sehr dankbar für jegliche Hilfe.

–WhiteAvenger

Hi Paul,

Gibt es eine Möglichkeit,
a) die Felder von Makros, aber nicht von Benutzern editierbar
zu machen

Sub tt()
Worksheets(1).Protect

’ dein Code

Worksheets(1).Unprotect
End Sub

Die Parameter zu Protect stehen in deiner Vba-Hilfe.

b) TRUE/FALSE-Variablen zu benutzen, die 1. von Formeln
benutzt werden können (im Sinne von
=IF(K3,„ja“,„nein“)), und 2. beim Schließen
der Tabelle nicht verloren gehen (Visual Basic-Variablen gehen
also schon mal deswegen nicht - oder?)

Da gibts zig Möglichkeiten.
Wieviele Variablen sind es denn? 5 10 100 1000 ?

Wie wärs mt der Speicherung in einer Tabelle die du mit .visible=xlveryhidden unsichtbar machst für normal Excel?

Speichern in CustomDocumentProperties

Gruß
Reinhard

Hallo Reinhard,

Sub tt()
Worksheets(1).Protect

’ dein Code

Worksheets(1).Unprotect
End Sub

Die Parameter zu Protect stehen in deiner Vba-Hilfe.

Brauche ich dazu nicht das Passwort, mit dem ich protected habe?

b) TRUE/FALSE-Variablen zu benutzen, die 1. von Formeln
benutzt werden können (im Sinne von
=IF(K3,„ja“,„nein“)), und 2. beim Schließen
der Tabelle nicht verloren gehen (Visual Basic-Variablen gehen
also schon mal deswegen nicht - oder?)

Da gibts zig Möglichkeiten.
Wieviele Variablen sind es denn? 5 10 100 1000 ?

Es sind nur 3 :wink:

Wie wärs mt der Speicherung in einer Tabelle die du mit
.visible=xlveryhidden unsichtbar machst für normal Excel?

Speichern in CustomDocumentProperties

Wenn du mir das nochmal genauer erklären könntest, wäre ich dir sehr dankbar…

–WhiteAvenger

Hi Paul,

Brauche ich dazu nicht das Passwort, mit dem ich protected
habe?

das ist sehr richtig, aber please rtfm *seufz* :smile:

Ich sage es halt nochmal:
Die Parameter zu Protect stehen in deiner Vba-Hilfe.
Schau einfach mal in die Hilfe…

Wieviele Variablen sind es denn? 5 10 100 1000 ?

Es sind nur 3 :wink:

Da bietet sich auf jeden Fall CustomDocumentProperties (steht auch in der Hilfe *gg*)

an, oder aber du speicherst das in 3 Namen ab.
Einfach mal Makrorecorder anschmeißen und einen Namen vergeben:

Name: Var1
bezieht sich auf: 0

dann schau dir den aufgezeichneten Code an.

Den halt umbauen dass er diesen Vorgang für 3 Variablen macht, da wo im Code die 0 steht, setzt du z.b. Range(„D5“).Value ein, also die Zelle wo falsch oder wahr steht.

Probier das mal aus, wenn du nicht klarkommst, zeige mal hier deinen Code mit dem du es probiert hast…

Wenn du mir das nochmal genauer erklären könntest, wäre ich
dir sehr dankbar…

Gerne versuche ich dir das zu erklären was du in der Hilfe nicht verstanden hast, aber mehrmals durchlesen mußt du schon selbst, außer du engagierst mich als Auftragsprogrammierer gegen Kohle, dann lese ich dir auch aus der Hilfe vor, für 70 € die Stunde*** mache ich das doch gerne *hihi*

*** meine Stunde hat 45 Minuten, dazu kommen natürlich noch die üblichen Anfahrtskosten usw. sowie Zuschlag pro person die mitzuhört…

Gruß
Reinhard

Hi Paul,

Brauche ich dazu nicht das Passwort, mit dem ich protected
habe?

das ist sehr richtig, aber please rtfm *seufz* :smile:

Entschuldigung, gepostet und 3 Sekunden später gesehen, dass das in der Hilfe stand :wink:

Wieviele Variablen sind es denn? 5 10 100 1000 ?

Es sind nur 3 :wink:

Da bietet sich auf jeden Fall CustomDocumentProperties (steht
auch in der Hilfe *gg*)

Naja, was da in der Hilfe steht, ist weniger als hilfreich :frowning:

Aber soweit ich das verstanden habe, kann ich mit den CustomDocumentProperties Variablenwerte im Dokument speichern und beim nächsten Öffnen wieder auslesen?

Gerne versuche ich dir das zu erklären was du in der Hilfe
nicht verstanden hast, aber mehrmals durchlesen mußt du schon
selbst, außer du engagierst mich als Auftragsprogrammierer
gegen Kohle, dann lese ich dir auch aus der Hilfe vor, für 70
€ die Stunde*** mache ich das doch gerne *hihi*

*** meine Stunde hat 45 Minuten, dazu kommen natürlich noch
die üblichen Anfahrtskosten usw. sowie Zuschlag pro person die
mitzuhört…

Weitere Personen werden nicht zuhören, aber Anfahrtskosten dürften teuer werden - ich bin in London xD

Trotzdem Danke

–Paul

PS
PS: Ich habe es schon mit Unprotect und Protect versucht, das scheint gut zu klappen - danke!

Hello Paul,

Entschuldigung, gepostet und 3 Sekunden später gesehen, dass
das in der Hilfe stand :wink:

und du schreibst du kommst damit kar, also ist das erledigt?

Da bietet sich auf jeden Fall CustomDocumentProperties (steht

Naja, was da in der Hilfe steht, ist weniger als hilfreich :frowning:

Normal bei MS.

Aber soweit ich das verstanden habe, kann ich mit den
CustomDocumentProperties Variablenwerte im Dokument speichern
und beim nächsten Öffnen wieder auslesen?

Richtig.
Was du u.a. unter Datei–Eigenschaften siehst sind die Buildindocumentproperties. Die kann man mit Vba auslesen, reinschreiben weiß ich grad nicht, müßete ich ja in der Hilfe schauen *smile*
Aber selbst wenn das ginge, wäre das taktisch unklug, wer weiß was im nächsten SP für Excel drin ist, vielleicht schreibt das ja da was rein wo du deine variablen hast, oder ein Arbeitskollege löscht deine 0/1 um irgendeinen Remark da zu speichern.

Also die CustomDocumentProperties nehmen. Da ist ja ein Beispiel, lege dir also die drei Variablen an, du mußt dabei angeben welcher Datentyp, String, Zahl …

Danach kannst du im Code so darauf zugreifen:

Thisworkbook,CustomDocumentProperties(„Var1“)=0

*** meine Stunde hat 45 Minuten, dazu kommen natürlich noch
die üblichen Anfahrtskosten usw. sowie Zuschlag pro person die
mitzuhört…

Weitere Personen werden nicht zuhören, aber Anfahrtskosten
dürften teuer werden - ich bin in London xD

Kein Problem du zahlst Firstclass im Flieger, ich nem die Fähre, dritter Klasse :smile:

Gruß
Reinhard

Hello Paul,

Entschuldigung, gepostet und 3 Sekunden später gesehen, dass
das in der Hilfe stand :wink:

und du schreibst du kommst damit kar, also ist das erledigt?

Genau, das geht super. Und die VB-Makros & Scripts hab ich auch gesperrt, es besteht also keine Gefahr, dass jemand das Passwort einfach auslesen kann.

Da bietet sich auf jeden Fall CustomDocumentProperties (steht

Naja, was da in der Hilfe steht, ist weniger als hilfreich :frowning:

Normal bei MS.

:smile:

Danach kannst du im Code so darauf zugreifen:

Thisworkbook,CustomDocumentProperties(„Var1“)=0

So hatte ich mir das gedacht, dass es funktioniert. Das werde ich mir merken, kann ja nochmal nützlich sein.

*** meine Stunde hat 45 Minuten, dazu kommen natürlich noch
die üblichen Anfahrtskosten usw. sowie Zuschlag pro person die
mitzuhört…

Weitere Personen werden nicht zuhören, aber Anfahrtskosten
dürften teuer werden - ich bin in London xD

Kein Problem du zahlst Firstclass im Flieger, ich nem die
Fähre, dritter Klasse :smile:

Dann zieh ich dir aber ordentlich was vom Lohn ab, weil du dann ca. 10 Stunden zu spät bist :wink:

Das Problem ist jetzt offiziell gelöst, vielen Dank!

Paul

Hi Paul,

und du schreibst du kommst damit kar, also ist das erledigt?

Genau, das geht super. Und die VB-Makros & Scripts hab ich
auch gesperrt, es besteht also keine Gefahr, dass jemand das
Passwort einfach auslesen kann.

dann hast du alles richtig gemacht, viel mehr Schutz könnte ich meinen Dateien/Codes derzeit auch nicht bieten.

Echten Schutz gibt es nur, wenn du ein Bild von der Tabelle machst und nur das an Kunden schickst, dann sind deine Codes Formeln wirklich geschützt.

Hat irgend einer deiner Kunden deine Datei auf seinem PC ist dein Schutz nur so hoch wie das Wissen und das Interesse des Kunden neugierig" zu sein klein ist.

Excelschutz ist so sicher wie meine Wohnungstür, 2 mal 4-5 mm dicke Holzplatten, dazwischen wabenförmig Pappe, jeder der mehr als 50kg wiegt hat doch die Tür mit 3-5 Tritten durchgetreten und kann durch die Öffnung durchkrabbeln.

Naja, so isses halt.

Kein Problem du zahlst Firstclass im Flieger, ich nem die
Fähre, dritter Klasse :smile:

Dann zieh ich dir aber ordentlich was vom Lohn ab, weil du
dann ca. 10 Stunden zu spät bist :wink:

*gähn* aufs Kleingedruckte (Arial, 3 Pixel hoch) in unserem Arbeitsvertrag den du unterschrieben hast verweise *grien*

Das Problem ist jetzt offiziell gelöst, vielen Dank!

Gerne.

Gruß
Reinhard

Sicherheit

Hi Paul,

und du schreibst du kommst damit kar, also ist das erledigt?

Genau, das geht super. Und die VB-Makros & Scripts hab ich
auch gesperrt, es besteht also keine Gefahr, dass jemand das
Passwort einfach auslesen kann.

dann hast du alles richtig gemacht, viel mehr Schutz könnte
ich meinen Dateien/Codes derzeit auch nicht bieten.

Echten Schutz gibt es nur, wenn du ein Bild von der Tabelle
machst und nur das an Kunden schickst, dann sind deine Codes
Formeln wirklich geschützt.

Hat irgend einer deiner Kunden deine Datei auf seinem PC ist
dein Schutz nur so hoch wie das Wissen und das Interesse des
Kunden neugierig" zu sein klein ist.

Excelschutz ist so sicher wie meine Wohnungstür, 2 mal 4-5 mm
dicke Holzplatten, dazwischen wabenförmig Pappe, jeder der
mehr als 50kg wiegt hat doch die Tür mit 3-5 Tritten
durchgetreten und kann durch die Öffnung durchkrabbeln.

Echt? Wie leicht kann man Excel-Tabellenpasswörter knacken? Bruteforce, klar, aber mein Passwort hat 20 Stellen mit Sonderzeichen etc. und wird daher so schnell nicht zu knacken sein. Gibt es Möglichkeiten, das Passwort rauszufinden? Über eine Art Decompiler oder so? Oder kann man das aus dem RAM lesen?

Grüezi Paul

Excelschutz ist so sicher wie meine Wohnungstür, 2 mal 4-5 mm
dicke Holzplatten, dazwischen wabenförmig Pappe, jeder der
mehr als 50kg wiegt hat doch die Tür mit 3-5 Tritten
durchgetreten und kann durch die Öffnung durchkrabbeln.

Echt? Wie leicht kann man Excel-Tabellenpasswörter knacken?
Bruteforce, klar, aber mein Passwort hat 20 Stellen mit
Sonderzeichen etc. und wird daher so schnell nicht zu knacken
sein. Gibt es Möglichkeiten, das Passwort rauszufinden? Über
eine Art Decompiler oder so? Oder kann man das aus dem RAM
lesen?

Um welches Passwort und welche Excel-Version geht es denn da?

Teilweise ist es nicht mal notwendig das PW ‚in echt‘ zu ermitteln - es lässt sich einfach übergehen.

Und nein, ich gebe keine weitere Auskunft zu diesem Thema, obschon ich mir damit erst kürzlich keinen Freund gemacht habe, als ich eine entsprechende Experten-Anfrega ablehnte.
Aber PW knacken ist nunmal nicht legel…


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Um welches Passwort und welche Excel-Version geht es denn da?

Wenn du mit „welches Passwort“ meinst, wofür das Passwort ist, dann ist es sowohl für den Blattschutz als auch für die VB-Ansichtssperre.
Wenn du meinst, was das Passwort ist, dann ist es eine Kombination aus 20 Zahlen, Groß- und Kleinbuchstaben, und Sonderzeichen.
Mein Excel ist 2003.

Teilweise ist es nicht mal notwendig das PW ‚in echt‘ zu
ermitteln - es lässt sich einfach übergehen.

Und nein, ich gebe keine weitere Auskunft zu diesem Thema,
obschon ich mir damit erst kürzlich keinen Freund gemacht
habe, als ich eine entsprechende Experten-Anfrega ablehnte.
Aber PW knacken ist nunmal nicht legel…

Ich will keine Passwörter knacken, ich will wissen, wie ich es verhindern kann. Ist es möglich, dass du mir sagst, wie ich Passwortknacken unterbinden kann, ohne dass du mir sagst, wie geknackt wird (das willst du ja nicht :wink: )?

Hi Paul,

Um welches Passwort und welche Excel-Version geht es denn da?

Wenn du mit „welches Passwort“ meinst, wofür das Passwort ist,
dann ist es sowohl für den Blattschutz als auch für die
VB-Ansichtssperre.

Je nach Excelversion und Art des PWs geht man unterschiedlich vor um es auszuhebeln, aber in Excel ist nichts sicher.

Wenn du meinst, was das Passwort ist, dann ist es eine
Kombination aus 20 Zahlen, Groß- und Kleinbuchstaben, und
Sonderzeichen.

Mehr kannst du nicht machen, du bist ja darauf angewiesen wie Excel deine Daten schützt.

Ich will keine Passwörter knacken, ich will wissen, wie ich es
verhindern kann. Ist es möglich, dass du mir sagst, wie ich
Passwortknacken unterbinden kann, ohne dass du mir sagst, wie
geknackt wird (das willst du ja nicht :wink: )?

Du kannst es nicht unterbinden solange du dich in Excel befindest.
Ich kenne mich da nicht aus was Alternativen sind, wandle die Xls in eine pdf, dann unterliegt sie nicht mehr dem Schutz durch Excel sondern durch Adobe, vielleicht ist der besser.

Aber wenn du die xls als xls weitergeben mußt hast du keine Chance da was zu unterbinden.

GRuß
Reinhard

Grüezi Paul

Um welches Passwort und welche Excel-Version geht es denn da?

Wenn du mit „welches Passwort“ meinst, wofür das Passwort ist,
dann ist es sowohl für den Blattschutz als auch für die
VB-Ansichtssperre.

Ja, das meinte ich - es gibt ja auch noch welche für den Arbeitsmappenschuzt und ein solches beim öffnen (letzters ist wohl eines der sichersten die es gibt).

Wenn du meinst, was das Passwort ist, dann ist es eine
Kombination aus 20 Zahlen, Groß- und Kleinbuchstaben, und
Sonderzeichen.

Das spielt für beide deiner oben genannten Fälle keine allzu grosse Rolle.

Mein Excel ist 2003.

OK, das entscheidet dann über den Aufwand, den jemand betreiben muss.

Teilweise ist es nicht mal notwendig das PW ‚in echt‘ zu
ermitteln - es lässt sich einfach übergehen.

Und nein, ich gebe keine weitere Auskunft zu diesem Thema,
obschon ich mir damit erst kürzlich keinen Freund gemacht
habe, als ich eine entsprechende Experten-Anfrega ablehnte.
Aber PW knacken ist nunmal nicht legel…

Ich will keine Passwörter knacken, ich will wissen, wie ich es
verhindern kann. Ist es möglich, dass du mir sagst, wie ich
Passwortknacken unterbinden kann, ohne dass du mir sagst, wie
geknackt wird (das willst du ja nicht :wink: )?

Aber klar ist es möglich :wink:

Du kannst es in Excel gar nicht verhindern; ausser PW setzen (und da möglichst komplex wie Du es ja getan hast) gibt es keine weiteren Möglichkeiten.

Allenfalls kannst/musst Du den Code in VB oder eine anderen Sprache programmieren, kompilieren und als .dll speichern, dann ist dieser um einiges sicherer als ein reines VBA-Projekt in Excel.

Der Schutz in Excel ist als Schutz vor sich selbst und dem unabsichtlichen Überschreiben/Zerstören von Formeln konzipiert und gedacht, nicht aber als wirkliche Barriere, die unüberwindlich ist.

Auch wenn das vermutlich nicht ganz das ist, was Du hören wolltest, hoffe ich doch, dass es dich weiter bringt.

Mit freundlichen Grüssen
Thomas Ramel

  • MVP für Microsoft-Excel -
    [Win XP Pro SP-2 / xl2003 SP-3]

Hi Reinhard,

Du kannst es nicht unterbinden solange du dich in Excel
befindest.
Ich kenne mich da nicht aus was Alternativen sind, wandle die
Xls in eine pdf, dann unterliegt sie nicht mehr dem Schutz
durch Excel sondern durch Adobe, vielleicht ist der besser.

Aber eine pdf ist doch nicht editierbar - kann eine pdf wie eine (dynamische) xls-Tabelle funktionieren?

Hi Thomas,

Du kannst es in Excel gar nicht verhindern; ausser PW setzen
(und da möglichst komplex wie Du es ja getan hast) gibt es
keine weiteren Möglichkeiten.

Allenfalls kannst/musst Du den Code in VB oder eine anderen
Sprache programmieren, kompilieren und als .dll speichern,
dann ist dieser um einiges sicherer als ein reines VBA-Projekt
in Excel.

Faszinierend - da muss ich mich mal schlau machen, wie das geht.

Der Schutz in Excel ist als Schutz vor sich selbst und dem
unabsichtlichen Überschreiben/Zerstören von Formeln konzipiert
und gedacht, nicht aber als wirkliche Barriere, die
unüberwindlich ist.

Sowas dachte ich mir schon fast.

Auch wenn das vermutlich nicht ganz das ist, was Du hören
wolltest, hoffe ich doch, dass es dich weiter bringt.

Naja, nachdem ich keine wahnsinnig geheimen Formeln oder so habe, brauche ich keinen 100%igen Schutz - ich wollte bei meinem Projekt nur verhindern, dass Leute (meine XLS wird an viele Schüler ausgegeben) die Formeln mutwillig verändern und dann falsch berechnende Datenblätter weitergeben. Wenn ein langes Passwort ein guter Schutz ist, reicht mir das - die Wahrscheinlichkeit, dass jemand probiert, die Mappe zu knacken, ist eh recht gering.

Danke

Paul

Du kannst es nicht unterbinden solange du dich in Excel
befindest.
Ich kenne mich da nicht aus was Alternativen sind, wandle die
Xls in eine pdf, dann unterliegt sie nicht mehr dem Schutz
durch Excel sondern durch Adobe, vielleicht ist der besser.

Aber eine pdf ist doch nicht editierbar - kann eine pdf wie
eine (dynamische) xls-Tabelle funktionieren?

Hallo Paul,

gibs auf :smile: Es geht nicht, daß du die Funtionalität von Excel und gleichzeitig sicheren Schutz hast.

Also kannste prinzipiell dem Kunden ein Bild (oder PDF) der Tabelle schicken, dann ist dein Code sicher aber der Kunde kann sich das Bild an die Wand hängen sonst nix.

Oder schicke dem Kunden die Datei, dann kann er alles damit machen, aber dein Code ist nicht sicher.

Beides gleichzeitig geht nicht.

Gruß
Reinhard

Hallo Reinhard,

gibs auf :smile: Es geht nicht, daß du die Funtionalität von Excel
und gleichzeitig sicheren Schutz hast.

Also kannste prinzipiell dem Kunden ein Bild (oder PDF) der
Tabelle schicken, dann ist dein Code sicher aber der Kunde
kann sich das Bild an die Wand hängen sonst nix.

Oder schicke dem Kunden die Datei, dann kann er alles damit
machen, aber dein Code ist nicht sicher.

Beides gleichzeitig geht nicht.

Danke, so eine klare und deutliche Antwort habe ich gesucht.

Gruß

Paul