Thema Datum  Von Nutzer Rating
Antwort
Rot Schließen von Excel: VBA-Passwort wird verlangt
15.11.2019 22:14:56 Jonas
NotSolved

Ansicht des Beitrags:
Von:
Jonas
Datum:
15.11.2019 22:14:56
Views:
932
Rating: Antwort:
  Ja
Thema:
Schließen von Excel: VBA-Passwort wird verlangt

Hi zusammen,

ich habe in meinem Projekt Code, der das einfache Schließen verhindert. Stattdessen wird ein Sub gestartet, wo abgefragt wird, ob geschlossen werden soll und dann eine Sicherungskopie erstellt. Erst dann kann das Programm geschlossen werden.

Wenn ich das Workbook schließe, wird NACH dem Schließen ein Dialogfeld angezeigt, wo das Passwort für mein VBA-Projekt abgefragt wird. Bei Abbruch des Dialogs schließt sich der Dialog, ich würde das aber gerne gar nicht erst angezeigt bekommen. Dies tritt nur auf, wenn ich vorher NICHT im VBA-Editor war und mein Passwort eingegeben habe.

Hier mal der Code mit erklärenden Anmerkungen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If schliessenerlaubt = False Then Call schliessen 'schliessenerlaubt wird beim Öffnen des Workbooks auf false gesetzt

Cancel = Not schliessenerlaubt

End Sub


Private Sub schliessen()

Dim dateiname As String

dateiname = Application.DefaultFilePath & "\Sicherungskopie.xlsm"

Application.DisplayAlerts = False

If MsgBox("Sind Sie sicher dass Sie das Programm schließen möchten?", vbYesNo) = vbYes Then
    Application.Run "DashboardOff" 'Startet ein Sub, das alle Leisten (vorher ausgeblendet) wieder einblendet
    TurnOff = True 'Variable für DashboardOff
    ThisWorkbook.Save 'Speichern
    ThisWorkbook.SaveCopyAs dateiname 'Sicherungskopie speichern
    schliessenerlaubt = True
    If Application.Workbooks.Count = 1 Then 'Abfrage ob noch andere Workbooks geöffnet sind
        Application.Quit 'wenn nur mein Workbook offen ist, wird Excel geschlossen
    Else
        ActiveWorkbook.Close 'Wenn weitere Workbooks offen sind, wird nur mein Workbook geschlossen
    End If
Else: schliessenerlaubt = False 'Abbruch wenn schließen nicht erwünscht
    Exit Sub
End If

End Sub

Mein Verdacht ist, dass es mit der Funktion Dashboardoff zusammenhängt, die eventuell noch versucht, Code zu verwenden, wenn das Workbook bereits geschlossen ist. Hier auch noch der Code für die Funktion (steht in einem Standardmodul).

Leider muss ich gestehen dass ich die Funktion aus einem anderen Forum genommen habe und nicht alle Funktionalitäten komplett verstehe.

Option Explicit

Public TurnOff As Boolean

Private Sub DashboardOn()
    With Application
        .ScreenUpdating = False
        If ActiveWorkbook.name = ThisWorkbook.name Then                     ' Change sheet name to fit your needs
            TurnOff = False
            With ActiveWindow
                .DisplayHeadings = False                            ' Remove Heading
                .DisplayWorkbookTabs = False                        ' Remove Tabs
            End With
            .DisplayFullScreen = True                               ' Force fullscreen
            .ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", False)"   ' Force the ribbon not to show
          Else: Application.Run "DashboardOff"                      ' Another sheet is chosen so return everything to normal
        End If
        .ScreenUpdating = True
        DoEvents
        If TurnOff = False Then .OnTime Now() + TimeValue("00:00:01"), "DashboardOn"
    End With
End Sub

Private Sub DashboardOff()
' Return items back on and restore screen to original size
    TurnOff = True
    With Application
        .ScreenUpdating = False
        .DisplayFullScreen = False
        .ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", True)"
    End With
    Windows(1).WindowState = xlMaximized
    With ActiveWindow
        .DisplayHeadings = True
        .DisplayWorkbookTabs = True
    End With
End Sub

Hat jemand eine Idee womit es zusammenhängen könnte dass der Dialog aufgeht?

Danke schonmal für eure Hilfe.

Grüße

Jonas


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Schließen von Excel: VBA-Passwort wird verlangt
15.11.2019 22:14:56 Jonas
NotSolved