Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Screenshot per Button-Klick und automatisches Speichern mit VBA
#11
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

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#12
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.
________
Servus
Case
Antworten Top
#13
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

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#14
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.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • StefanB
Antworten Top
#15
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

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#16
Geht doch nicht...es wird anch wie vor das Kennwort gefordert. Undecided  Jetzt bin ich am Ende mit meinem Latein 20

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#17
Schmeiß die beiden markierten Zeilen komplett raus!
Es reicht das Workbook_Open()

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#18
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

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top
#19
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#20
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

Interpunktion und Orthographie dieses Textes sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

Grüße, StefanB
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste