Clever-Excel-Forum

Normale Version: Screenshot per Button-Klick und automatisches Speichern mit VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

vielen Dank für die Verlinkung. Aber leider klappt das bei mir nur bedingt...Irgendwo ist bei mir der Wurm drin. Manchmal fragt er nach dem Kennwort wenn ich ein Screenshot machen möchte [attachment=37867] und manchmal nicht UND wenn ich auf Blattschutz AUS klicke fragt er nicht immer nach dem Kennwort. Huh Huh Huh   [attachment=37865]

Folgende Codes habe ich nun...

DieseArbeitsmappe:
Option Explicit
Private Sub Workbook_Open()
   Dim wksSheet As Worksheet
   For Each wksSheet In ThisWorkbook.Worksheets
       wksSheet.Protect UserInterfaceOnly:=True
Next wksSheet


Modul6 (Blattschutz):
Sub Blattschutz_AN()
For Each Sheet In ActiveWorkbook.Worksheets
Sheet.Protect Password:="1"
Next Sheet
End Sub

Sub Blattschutz_AUS()
For Each Sheet In ActiveWorkbook.Worksheets
Sheet.Unprotect
Next Sheet
End Sub


Modul5 (Screenshot):
Option Explicit
Sub TabelleExportierenAlsBild()
ActiveSheet.Unprotect
    Application.ScreenUpdating = False
    ActiveSheet.Range("A1:T35").CopyPicture Appearance:=xlScreen, Format:=xlPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Range("A1:T35").Width, Range("A1:T35").Height).Chart
        .Parent.Activate
        .Paste
        .Export "Y:\Pschl_Kalkulator\" & ActiveSheet.Range("C1").Value & ".png"
        .Parent.Delete
    End With
    Application.ScreenUpdating = True
ActiveSheet.Protect
End Sub

Mega großen Dank schon mal im Voraus 19 19 19
Hallo, 19

du brauchst eigentlich nur den Code unter "DieseArbeitsmappe". Über den Parameter "UserInterfaceOnly:=True" bestimmst du, dass Makros Änderungen vornehmen können. Wenn gewünscht, kannst du natürlich auch noch ein Passwort vorgeben. Du hast ja jetzt schon die "1" drin - beachte das.
Hallo Case,

das geht alles i-wie nicht. 20 

Wenn ich die tabelle öffne kommt das : [attachment=37870] dann klicke ich auf ok und dann kommt das : [attachment=37871] , klicke ich dann auf VBA beenden kommt das : [attachment=37872] . Dann sehe ich wieder meine Exceltabelle, das Blatt ist geschützt und wenn ich den screenshot-button drücke muss ich wieder das Kennwort eingeben :  [attachment=37873] . Wenn ich das dann einmalig eingebe kann ich ganz normal den screeshot-button klicken und er speichert auch die Bilder. Gehe ich dann auf den Blattreiter und klicke auf Blattschutz aufheben, fragt er nicht nach dem Kennwort. Das Blatt ist nun nicht mehr geschützt. Klicke ich wieder auf den screeshot-button, schützt sich das Blatt automatisch. Hat sicherlich damit zu tun : [attachment=37874] . Jedoch soll das ja so nicht das Ziel sein.  Confused  nicht der Button soll das Blatt schützen, sondern ein Code soll den Button es ermöglichen im "Blattschutz-Modus" sein Werk zu tätigen... Was nun? Ich stoße langsam an meine Grenzen...  Huh

Ziel soll sein, dass Mitarbeiter mit dieser Tabelle normal arbeiten können. Allerdings muss Sie geschützt sein, damit überkluge Mitarbeiter nicht auf die Idee kommen, wichtige Formeln o.ä. andern zu können. Das ist mega wichtig.

Ne Idee wo der Fehler ist?   19
Auch Hallo,

die Fehlermeldung ist eindeutig. Was Du mit Private Sub ..... beginnst, musst Du auch mit End Sub beenden. Also ganz einfach beim Workbook_Open-Ereignis unter dem End With noch End Sub schreiben.
Hallo,

danke für den Hinweis!! Jetzt startet die Tabelle ohne diesen Fehler. Blush
Allerdings bleibt das Problem mit dem Screenshot-Button. 20
Nun wird nach dem Öffnen der Tabelle das Kennwort gefordert. Das soll so aber nicht sein. Es scheint als würde der Screenshot-Button definitiv das Kennwort haben wollen um zu funktionieren. Kann das nicht im Hintergrund via Code-Eintrag oder so ablaufen? Ansonsten macht der Blattschutz keinen Sinn. Undecided

Ich denke ich hab´s... [attachment=37877]  Blush
Geht doch nicht...es wird anch wie vor das Kennwort gefordert. Undecided  Jetzt bin ich am Ende mit meinem Latein 20
Schmeiß die beiden markierten Zeilen komplett raus!
Es reicht das Workbook_Open()

Gruß Ralf
GuMo Ralf,

wenn ich das rausschmeiße kommt wieder der Laufzeitfehler '1004' Undecided 
Aber es scheint so zu funktionieren : [attachment=37899] Hab die Tabelle nun mehrere Male gestartet und es kam keine Kennwortaufforderung beim Betätigen des Screenshot-Buttons oder Blattschutz aufheben ohne Kennworteingabe.

Vielen Dank an Euch alle!! Hab wieder viel gelernt.
Freue mich auf´s nächste Mal.  19 

Stefan
Noch einmal:
Wenn Du im _Open mit UserInferfaceOnly:=True das Passwort setzt,
sind die 2 Zeilen im Makro widersinnig und überflüssig.

UserInferfaceOnly:=True bedeutet, dass der Schutz nur für den Anwender (User) im Interface (also der Excel-Oberfläche) gilt.
VBA interessiert dieser Schutz nicht!

Aus der VBA-Hilfe zur .Protect-Methode für den Parameter UserInterfaceOnly:
Zitat:True, um die Benutzeroberfläche, jedoch keine Makros zu schützen. Ohne Angabe dieses Arguments wird der Schutz auf Makros und die Benutzeroberfläche angewendet.


Gruß Ralf
Hallo Ralf,

ich hab das schon verstanden was Du meinst, nur funktioniert das nicht bei mir Sad
Bringt es was, wenn ich alle Codes mal hier reinschreibe? Vllt hebelt ja eine Zeile eine Andere aus. Oder was weiß ich... Huh 
Ich würde es schon gern wissen wo bei mir der Fehler ist. Vor allem wieso es so klappt : [attachment=37903] und wenn ich Deine Variante probiere nicht.

Gruß stefan
Seiten: 1 2 3