MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 17.07.2017, 13:32   #1
Botpenner
Neuer Benutzer
Neuer Benutzer
Standard Frage - Speichern deaktivieren aber per Button noch möglich

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
Kann mir jemand sagen wie ich den Usernamen richtig eintrage wenn er zwei Namen hat? Also vor und Nachname? Mit Komma getrennt? Weil er nimmt es bei mir nicht an.

Bsp. Max,Mustermann --> If Application.UserName = "Max,Mustermann" Then Exit Sub
Botpenner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 13:47   #2
EarlFred
MOF Guru
MOF Guru
Standard

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
Hinter dem Button dann folgenden Code:
Code:

DieseArbeitsmappe.blnDieserButtonDarfDas = True
ThisWorkbook.Save
Application.UserName ist der Name, mit dem Du bei Excel angemeldet bist. Ich würde den Windows-Anmeldenamen bevorzugen.
Beide Varianten:
Code:

MsgBox Application.UserName
MsgBox Environ("Username")

Zitat:

If Application.UserName = "Max,Mustermann" Then Exit Sub

Exit Sub nützt Dir übrigens nichts, um das Speichen zu verhindern. Da musst Du schon Cancel = True setzen.

Grüße
EarlFred

Geändert von EarlFred (17.07.2017 um 13:50 Uhr).
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 14:14   #3
Botpenner
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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
Gerne möchte ich das mit der Windowsbenutzer kommbinieren.

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
Also so:

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 14:29 Uhr).
Botpenner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 14:30   #4
EarlFred
MOF Guru
MOF Guru
Standard

die Frage sieht ja dauernd anders aus...

Wenn Du fertig editiert hast, melde Dich,

Geändert von EarlFred (17.07.2017 um 14:35 Uhr).
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 14:44   #5
Botpenner
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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!!
Botpenner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 15:08   #6
EarlFred
MOF Guru
MOF Guru
Standard

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
Grüße
EarlFred
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 15:17   #7
Botpenner
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

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!
Botpenner ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.