Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makroaktivierung erzwingen

Makroaktivierung erzwingen
28.11.2007 18:29:24
Konni
Hallo Freaks,
in meiner Mappe, die ohne Makros kein Ergebnis bringt, sind mehrere Menuepunkte deaktiviert.
Das Ganze funktioniert nur, wenn beim Start der Mappe die Makros auch aktiviert werden.
Wie kann man den Start der Mappe bei deaktivierten Makros verhindern? Geht vermutlich nicht, oder doch?
Ich will damit erreichen, dass im Besonderen der Menuepunkt "Extras" nicht aktiviert wird (wegen Passwort .....; Ihr wisst schon).
Die Antwort ahne ich schon, doch ein Versuch im Forum ist es wert!
Vielen Dank und viele Grüße: Konni

Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroaktivierung erzwingen
28.11.2007 18:35:25
mumpel
Hallo!
Das geht indirekt schon. Darüber wurde hier schon sehr oft diskutiert, siehe Archiv.
1. Möglichkeit: Datei per Exe öffnen (VB-Kenntnisse erforderlich).
2. Möglichkeit: Ein Dummyblatt einfügen. Beim Schließen der Arbeitsmappe werden alle Blätter versteckt (xlVeryHidden) bis auf das Dummyblatt und die Arbeitsmappe mit einem Passwort versehen. Beim Öffnen dann umgekehrt (Workbook_open). Sind die Makros deaktiviert, dann ist nur das Dummyblatt sichtbar.
Gruß, Rene

Anzeige
AW: Makroaktivierung erzwingen
28.11.2007 18:56:10
Konni
Hallo Rene,
über Extras kann ein .... den Blattschutz aufheben. Kann man dann nicht auch die Blätter wieder einblenden?
Gruß: Konni

AW: Makroaktivierung erzwingen
28.11.2007 19:02:00
mumpel
Wenn die Blätter mit xlVeryHidden ausgeblendet sind und die Arbeitsmappe mit Passwort geschütz wurde, ist ein Einblendene über das Menü nicht möglich, da ja die Blätter versteck sind und nicht ausgeblendet (False). Wichtig ist allerdings das Arbeitsmappenkennwort. Anderenfalls lassen sich die Blätter mit externen Makros wieder sichtbar machen, was durch ein Passwort verhindert wird.

Anzeige
AW: Makroaktivierung erzwingen
28.11.2007 19:22:18
Konni
Hallo Rene,
nachstehend mein Code beim Mappenstart:
Option Explicit

Private Sub workbook_open()
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect Password:="xxx"
Worksheets("A2").Visible = True
'Schaltflächen ausblenden
Worksheets("A2").Activate
ActiveSheet.Shapes("Button 33").Visible = True
ActiveSheet.Shapes("Button 34").Visible = False
ActiveSheet.Shapes("Button 36").Visible = False
Worksheets("A2").Protect Password:="xxx"
Worksheets("W1-W2").Protect Password:="xxx"
Worksheets("W3-W4").Protect Password:="xxx"
Worksheets("W5-W6").Protect Password:="xxx"
Worksheets("W7-W8").Protect Password:="xxx"
Worksheets("W9").Protect Password:="xxx"
Worksheets("E1 E2").Protect Password:="xxx"
Worksheets("A1").Protect Password:="xxx"
Worksheets("W6,W9").Protect Password:="xxx"
Worksheets("Baulstg.").Protect Password:="xxx"
Worksheets("LB Diagramm").Protect Password:="xxx"
Select Case Environ("UserName")
Case ("Username")
Worksheets("A2").Visible = True
'ActiveSheet.Protect Password:="xxx"
'xlVeryHidden
Case Else
Worksheets("A1").Visible = False
Worksheets("W6,W9").Visible = False
Worksheets("Baulstg.").Visible = False
Worksheets("LB Diagramm").Visible = False
End Select
ActiveWorkbook.Protect Password:="xxx"
Worksheets("A2").Select
ActiveSheet.Protect Password:="xxx"
Application.ScreenUpdating = True
End Sub


Ich kann kein VBA. Alles habe ich mit Hilfe von Forumsmitgliedern und teilweise Makrorekorder zusammengebastelt.
Mit einem zusätzlichen Tabellenblatt bekomme ich hin. Aber wie setze ich "xlveryHidden" ein?
Vielen Dank und Gruß: Konni

Anzeige
AW: Brauche zum Testen ein paar Tage Zeit
28.11.2007 19:56:20
Konni
Hallo Hajo,
nun treffen wir uns schon wieder.
Deine Lösungen sind wirklich toll, aber ich kann sie nicht (fehlende VBA-Kenntnisse) implementieren. Zu komplex für eine VBA-Niete wie mich.
Ich werde in den nächsten Tagen mal experimentieren und melde mich dann noch einmal.
Dank und Gruß: Konni

Anzeige
AW: Makroaktivierung erzwingen
28.11.2007 19:35:00
mumpel
Zum Beispiel
Beim Schließen der Arbeitsmappe (in DieseArbeitsmappe). Die Makros musst Du entsprechen anpassen

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Unprotect "DeinKennwort" 'Kennwort in Anführungszeichen
With ThisWorkbook
.Sheets("Dummy").Visible = True
.Sheets("Tabelle1").Visible = xlVeryHidden
.Sheets("Tabelle2").Visible = xlVeryHidden
End With
ThisWorkbook.Protect "DeinKennwort"
ActiveWorkbook.Save
End Sub


Beim Öffnen


Private Sub Workbook_Open()
ThisWorkbook.Unprotect "DeinKennwort" 'Kennwort in Anführungszeichen
With ThisWorkbook
.Sheets("Tabelle1").Visible = True
.Sheets("Tabelle2").Visible = True
.Sheets("Dummy").Visible = False
End With
ThisWorkbook.Protect "DeinKennwort"
End Sub


Anzeige
Nachtrag
28.11.2007 19:36:38
mumpel
Da war einer schneller ;)

AW: Kann erst später testen.
28.11.2007 20:05:00
Konni
Hallo Rene,
vielen, vielen Dank für Deine Unterstützung.
Ich kann Deinen Code jetzt nicht einbauen (sieht aber nachvollziehbar aus!), da ich weg muss. Melde mich bei Dir über's Forum, wenn es geklappt hat! Danke!
Viele Grüße: Konni

Anzeige
AW: Makroaktivierung erzwingen
28.11.2007 18:35:00
Jan
Hi,
öffne die Mappe extern mittels VBS, Exe, Bat.
mfg Jan

AW: Makroaktivierung erzwingen
28.11.2007 18:57:41
Konni
Hallo Jan,
dann kann keiner die Mappe öffnen, da man dazu Administratorenrechte braucht.
Gruß: Konni

AW: Makroaktivierung erzwingen
28.11.2007 19:01:26
Jan
Hi,
solch wichtigen Details gehören in die Frage, dann kann man sich gleich
die Antwort sparen.
mfg Jan

Anzeige
AW: Makroaktivierung erzwingen
28.11.2007 19:11:00
Konni
Hallo Jan,
siehe Antwort von "Mumpel". Ich habe nicht an "EXE" & Co gedacht. Kannst Du mir nochmal verzeihen?
Gruß: Konni

Klappt!! - Tausend Dank Rene und Hajo o.T.
29.11.2007 19:31:34
Konni
.
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makroaktivierung erzwingen in Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. DieseArbeitsmappe auswählen: Im Projekt-Explorer wählst du "DieseArbeitsmappe" aus.

  3. Code einfügen: Füge den folgenden Code in das Fenster ein:

    Private Sub Workbook_Open()
        ThisWorkbook.Unprotect "DeinKennwort" 'Kennwort einfügen
        With ThisWorkbook
            .Sheets("Dummy").Visible = False
            .Sheets("Tabelle1").Visible = True
            .Sheets("Tabelle2").Visible = True
        End With
        ThisWorkbook.Protect "DeinKennwort"
    End Sub
  4. Blätter schützen: Achte darauf, dass du die Blätter entsprechend schützt, um unbefugtes Einblenden zu verhindern.

  5. Makros aktivieren: Stelle sicher, dass die Makros aktiviert sind, wenn du die Datei öffnest.


Häufige Fehler und Lösungen

  • Excel-Makros lassen sich nicht aktivieren: Überprüfe die Einstellungen unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center. Stelle sicher, dass die Makros aktiviert sind.

  • Excel-Makro aktivieren funktioniert nicht: Möglicherweise ist die Datei im falschen Format gespeichert. Speichere sie als .xlsm, um Makros zu ermöglichen.

  • Excel-Makros deaktiviert obwohl aktiviert: Überprüfe, ob das Dokument möglicherweise in einem geschützten Modus geöffnet wurde.


Alternative Methoden

  • Datei extern öffnen: Du kannst die Excel-Datei auch über eine VBS-Datei oder ein Batch-Skript öffnen, um die Makroaktivierung zu erzwingen. Hier ein Beispiel für eine VBS-Datei:

    Set xl = CreateObject("Excel.Application")
    xl.Visible = True
    xl.Workbooks.Open "Pfad\zur\deiner\Datei.xlsm"
  • Dummy-Blatt verwenden: Ein Dummy-Blatt kann hinzugefügt werden, das standardmäßig sichtbar ist. Wenn die Makros deaktiviert sind, sieht der Benutzer nur dieses Blatt.


Praktische Beispiele

Hier ist ein Beispiel für den Code, den du in "DieseArbeitsmappe" einfügen kannst, um die Sichtbarkeit der Blätter zu steuern:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Unprotect "DeinKennwort"
    With ThisWorkbook
        .Sheets("Tabelle1").Visible = xlVeryHidden
        .Sheets("Tabelle2").Visible = xlVeryHidden
    End With
    ThisWorkbook.Protect "DeinKennwort"
    ActiveWorkbook.Save
End Sub

Diese Methode sorgt dafür, dass die Blätter beim Schließen der Mappe versteckt werden.


Tipps für Profis

  • Makros dauerhaft aktivieren: Um Makros dauerhaft zu aktivieren, kannst du die Arbeitsmappe in einem vertrauenswürdigen Speicherort speichern.

  • Eingabeaufforderungen minimieren: Verwende Application.DisplayAlerts = False im Code, um Eingabeaufforderungen während des Makroablaufs zu minimieren.

  • Debugging: Nutze Debugging-Tools im VBA-Editor, um Fehler im Code schnell zu identifizieren und zu beheben.


FAQ: Häufige Fragen

1. Warum kann ich meine Excel-Makros nicht aktivieren? Stelle sicher, dass deine Excel-Einstellungen die Ausführung von Makros zulassen. Überprüfe die Trust Center-Einstellungen.

2. Was ist der Unterschied zwischen "xlHidden" und "xlVeryHidden"? xlHidden versteckt das Blatt, kann jedoch über die Benutzeroberfläche wieder sichtbar gemacht werden. xlVeryHidden macht das Blatt unsichtbar, selbst wenn der Benutzer die Blätter aufruft.

3. Wie kann ich Makros deaktivieren, obwohl sie aktiviert sind? Überprüfe, ob deine Sicherheitsstufe für Makros auf "Alle Makros deaktivieren" gesetzt ist und ändere sie gegebenenfalls.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige