![]() |
|
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo Leute,
ich möchte gerne das Speichern in meiner Arbeitsmappe verhindern. Dazu gibt es ja reichlich Codes hier., hab mir diesen ausgesucht Code: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = True End Sub Jetzt habe ich aber einen CommandButton womit man Speichern kann. Kann man dort die Speicherfunktion aktiviert lassen? Hintergrund ist dieser, dass dort abfragen gemacht werden, dass nur Speichern möglich ist wenn bestimmte Zellen gefüllt sind. Deaktiviere ich jetzt mit dem oben genannten Code das Speichern, so funktioniert der Button natürlich nicht mehr. Hab noch einen schönen Code gefunden wo ich als Admin nur die datei speichern kann. Code: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Application.UserName = "Oliver" Then Exit Sub MsgBox "Darfst Du nicht!" Cancel = True End Sub Bsp. Max,Mustermann --> If Application.UserName = "Max,Mustermann" Then Exit Sub |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Guru |
![]() Hallo,
Variante mit globaler Variable: Code: Option Explicit Public blnDieserButtonDarfDas As Boolean Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cancel = Not blnDieserButtonDarfDas blnDieserButtonDarfDas = False End Sub Code: DieseArbeitsmappe.blnDieserButtonDarfDas = True ThisWorkbook.Save Beide Varianten: Code: MsgBox Application.UserName MsgBox Environ("Username") Zitat: If Application.UserName = "Max,Mustermann" Then Exit Sub Grüße EarlFred __________________ Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren Für 5 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,037% per 04.04.2018) - eine tolle Geste! Geändert von EarlFred (17.07.2017 um 12:50 Uhr). |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo Danke erstmal. Bekomm das nicht richtig hin.
Mein Button speichert nun immer egal ob die Zellen gefüllt sind oder nicht. Was muss ich ändern? Der Button soll auch nur jedes mal "Speichern untern" anzeigen, nicht einfach die datei überspeichern Code: Private Sub CommandButton1_Click() Dim rngPflicht As Range, rngBereich As Range Dim intLeere As Integer Set rngPflicht = [O20,B10,C10,F10,H10,I10,K10,M10,P10,Q10] For Each rngBereich In rngPflicht.Areas intLeere = intLeere + Application.WorksheetFunction.CountBlank(rngBereich) Next If intLeere > 0 Then MsgBox "Bitte füllen Sie alle notwendigen Daten! Geben Sie min. ein Plattenmaterial an. Achten Sie auf die Eingabe der maximalen Palettenhöhe!" Else On Error Resume Next 'Falls Speichern abgebrochen wurde Application.Dialogs(xlDialogSaveAs).Show End If DieseArbeitsmappe.blnDieserButtonDarfDas = True ThisWorkbook.Save End Sub Code: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Environ("UserName") <> "mustermann" Then MsgBox "Darfst Du nicht!" Cancel = True End If End Sub Der Benutzer "mustermann" darf die Datei immer speichern mit der normalen Standartfunktion. Alle anderen Benutzer dürfen zum Speichern nur den CommandButton dafür benutzen. Aber auch nur "Speichern unter". Hinter den CommandButton steckt eine Abfrage das man nur Speichern darf, wenn bestimmte Zellen gefüllt sind, sonst abgebrochen. Nur wie ich das alles nun kombinieren muss, sprengt meine Grenzen. Hoffe es kann mir noch jemand schnell helfen, Danke!! Geändert von Botpenner (17.07.2017 um 13:29 Uhr). |
![]() |
![]() ![]() |
![]() |
#4 |
![]() MOF Guru |
![]() die Frage sieht ja dauernd anders aus...
Wenn Du fertig editiert hast, melde Dich, __________________ Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren Für 5 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,037% per 04.04.2018) - eine tolle Geste! Geändert von EarlFred (17.07.2017 um 13:35 Uhr). |
![]() |
![]() ![]() |
![]() |
#5 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Sorry mir viel beim schreiben und Editieren immer noch mehr ein. Wusste nicht das Du so schnell hier antworten tust, echt klasse!!
Also so wie sie jetzt oben steht wäre es ideal. - Benutzer "mustermann" soll die Datei standartmäßig abspeichern können ( Button, Menü, Tastenbefehle etc.) - andere Benutzer dürfen dies nicht dafür benutzen diese den CommandButton. Dahinter verbirgt sich eine Abfrage, sodass diese nur speichern können wenn bestimmte Zellen gefüllt sind . Außerdem soll nur Speichern unter gehen ( der Code funktioniert soweit) - Ich muss jetzt nur noch regeln mit der Variante. Zurzeit ist es bei mir so, dass Benutzer "Mustermann" alles speichern kann und ein anderer Benutzer nicht mehr mit den Button speichern kann weil ich halt noch nicht die Variante eingebaut habe. Danke nochmal!! |
![]() |
![]() ![]() |
![]() |
#6 |
![]() MOF Guru |
![]() Hallo,
Code: Option Explicit Private Sub CommandButton1_Click() Dim rngPflicht As Range, rngBereich As Range Dim intLeere As Integer Set rngPflicht = Me.Range("O20,B10,C10,F10,H10,I10,K10,M10,P10,Q10") For Each rngBereich In rngPflicht.Areas intLeere = intLeere + Application.WorksheetFunction.CountBlank(rngBereich) Next If intLeere > 0 Then MsgBox "Bitte füllen Sie alle notwendigen Daten! Geben Sie min. ein Plattenmaterial an. Achten Sie auf die Eingabe der maximalen Palettenhöhe!" Else On Error Resume Next 'Falls Speichern abgebrochen wurde DieseArbeitsmappe.blnDieserButtonDarfDas = True Application.Dialogs(xlDialogSaveAs).Show End If End Sub Code: Option Explicit Public blnDieserButtonDarfDas As Boolean Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If LCase$(Environ("UserName")) = "mustermann" Or blnDieserButtonDarfDas Then Cancel = False Else MsgBox "Darfst Du nicht!" Cancel = True End If blnDieserButtonDarfDas = False End Sub EarlFred __________________ Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren Für 5 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,037% per 04.04.2018) - eine tolle Geste! |
![]() |
![]() ![]() |
![]() |
#7 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Hallo EarlFred,
ich danke Dir !!!! Wow echt klasse! Es funktioniert zu 100 % wie ich es mir vorgestellt habe! Sorry nochmal das ich da Dir etwas doppelte arbeit gemacht habe durchs editieren! Klasse! Das auch Anfängern wie mir geholfen wird !! Danke! ![]() |
![]() |
![]() ![]() |