Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Abfrage Makros aktieren

Abfrage Makros aktieren
23.02.2006 10:07:57
Ines
Hallo Zusammen,
Ich habe meine Mappe mit folgendem Makro geschützt.

Private Sub Workbook_Open()
Dim myWorksheet As Worksheet
For Each myWorksheet In ThisWorkbook.Worksheets
With myWorksheet
.Protect Password:="cgn5729", UserInterfaceOnly:=True
.EnableOutlining = True
End With
Next
End Sub

Dadurch wird verhindert, dass jemand in die Zellen schreiben kann, die nicht freigegeben sind und trotzdem kann man die Gruppierungen nutzen.
Mein Problem ist jetzt, dass man beim öffnen der Mappe gefrage wird "Markos aktivieren oder nicht etc.". Wenn man sie nicht zulässt kann man also meine Daten verändern. Das möchte ich natürlich nicht und frage mich, ob man einstellen kann, dass die Mappe nur geöffnet werden kann wenn man die Makros akezeptiert?
Vielen Dank für Eure Hilfe!!!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage Makros aktieren
23.02.2006 10:39:56
Andi
Hi,
das geht nur über einen Umweg:
Du blendest alle Blätter mit .visible = xlsheetveryhidden aus, dann können sie im Gegensatz zu xlsheethidden nicht über Format - Blatt manuell wieder eingeblednet werden.
Zusätzlich legst Du ein weiters Blatt an, das standardmäßig als einziges sichtbar ist, auf dem irgendwas steht wie "Diese Mappe kann nur mit aktiven Makros verwendet werden".
Wenn die Mappe dann ohne Makros geöffnet wird, dann ist nur dieses eine Blatt zu sehen.
Im workbook_open blendest Du dann alle Blätter ein, und dieses eine aus, im workbook_close umgekehrt. Damit das wirklich funktinoniert, musst Du allerdings in workbook_close nachdem einblenden noch zwangsweise speichern.
Schönen Gruß,
Andi
Anzeige
AW: Abfrage Makros aktieren
23.02.2006 11:50:23
Ines
Hallo Andi,
erstmal DANKE für Deine schnelle Hilfe.
Allerdings weiß ich nicht wie ich alle Blätter mit .visible = xlsheetveryhidden ausblenden kann.
Und wie kann ich machen das ein Blatt standartmäßig sichtbar ist?
Ich probiere einfach mal aus..
Vielen Dank!
Ines
AW: Abfrage Makros aktieren
23.02.2006 12:19:42
Andi
Hi,
standardmäßig sichtbar is ein Blatt von haus aus, dafür musst Du nix mehr machen.
Im VB-Editor kannst Du für jede Tabelle die Eigenschaften einstellen, unter anderem auch die visible-Eigenschaft; die setzt Du zunächst mal auf xlsheetveryhidden (außer für das eine).
Dann ergänzt Du das Open-Ereignis wie folgt:

Private Sub Workbook_Open()
Dim myWorksheet As Worksheet
For Each myWorksheet In ThisWorkbook.Worksheets
With myWorksheet
If .Name <> "StartSeite" Then
.Visible = xlSheetVisible
Else
.Visible = xlSheetVeryHidden
End If
.Protect Password:="cgn5729", UserInterfaceOnly:=True
.EnableOutlining = True
End With
Next
End Sub

und fügst noch folgendes BeforeClose-Ereignis hinzu:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim myWorksheet As Worksheet
For Each myWorksheet In ThisWorkbook.Worksheets
With myWorksheet
If .Name <> "StartSeite" Then
.Visible = xlSheetVeryHidden
Else
.Visible = xlSheetVisible
End If
ThisWorkbook.Save
End Sub

Die Seite mit dem Hinweis, dass Makros aktiv sein müssen, hab ich jetzt mal "StartSeite" getauft, das kannst Du natürlich auch ändern.
Getestet hab ich das ganze jetzt nicht, müsste aber gehen; sei Dir aber bewusst, dass die Mappe beim Schliessen automatisch gespeichert wird, mit allen Änderungen, die ggf. irgendwie vorgenommen wurden. Anders wäre das ausblenden der Blätter nicht wirksam.
Schönen Gruß,
Andi
Anzeige
AW: Abfrage Makros aktieren
23.02.2006 12:57:59
Ines
Hi Andi,
nochmal vielen Dank!!
Wenn ich beim öffnen auf "enable" clicke sehe ich alles außer der "StartSeite" (das klappt schon mal super) jedoch klappt es bei "disable" nicht so gut, da zeigt er mir alle Blätter an inkl. der Startseite.
Er "meckert" bei ersten Zeile hier (gelb hinterlegt):

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim myWorksheet As Worksheet
For Each myWorksheet In ThisWorkbook.Worksheets
With myWorksheet
If .Name <> "StartSeite" Then
.Visible = xlSheetVeryHidden
Else
.Visible = xlSheetVisible
End If
ThisWorkbook.Save
End Sub

Trotzdem schon mal vielen vielen Dank!!!!
Anzeige
AW: Abfrage Makros aktieren
23.02.2006 14:47:14
Andi
Hi nochmal,
das Problem war folgendes: ich schrieb "Getestet hab ich das ganze jetzt nicht, müsste aber gehen".
Diesmal schreib ich "Getestet hab ich das ganze schon, und es geht" :-))
Einfach die alten Makros durch diese hier ersetzen, dann läuft's:

Private Sub Workbook_Open()
Dim myWorksheet As Worksheet
For Each myWorksheet In ThisWorkbook.Worksheets
With myWorksheet
If .Name <> "StartSeite" Then
.Visible = xlSheetVisible
End If
.Protect Password:="cgn5729", UserInterfaceOnly:=True
.EnableOutlining = True
End With
Next
Worksheets("StartSeite").Visible = xlSheetVeryHidden
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim myWorksheet As Worksheet
For Each myWorksheet In ThisWorkbook.Worksheets
With myWorksheet
If .Name <> "StartSeite" Then
.Visible = xlSheetVeryHidden
Else
.Visible = xlSheetVisible
End If
ThisWorkbook.Save
End With
Next
End Sub

Schönen Gruß,
Andi
Anzeige
AW: Abfrage Makros aktieren
23.02.2006 12:24:46
Ines
Hallo Ines,
soweit ich weiß kann man Tabellenblätter in Visual Basic aus- und einblenden. Du musst Im Projektexplorer zuerst das entsprechende Tabellenblatt markieren und kannst dann im Eigenschaftenfenster unter "Visible" "xlSheetVisible" (standardmäßig sichtbar), "xlSheetHidden" und "xlSheetVeryHidden" auswählen. Leider weiß ich nicht was der unterschied zwischen den beiden Hidden-Möglichkeiten ist.
Gruß
(auch) Ines
AW: Abfrage Makros aktieren
23.02.2006 14:23:36
Ines
Hallo (auch) Ines :-)
Danke für Deine Antwort.
Ich habe es genauso gemacht wie ihr gesagt habt, leider zeigt er mir jetzt immer (also egal ob Makros zulassen oder nicht) nur die eine Seite ("StartSeite") an, die ich nicht nicht auf xlsveryhidden gesetzt habe.
Trotzdem Danke für Deine Hilfe.
Wenn jemand noch eine Idee hat, oder weiß wo der Fehler liegt wäre ich sehr dankbar :-)
Viele Grüße
Ines
Anzeige
AW: Abfrage Makros aktieren
23.02.2006 14:23:48
Ines
Hallo (auch) Ines :-)
Danke für Deine Antwort.
Ich habe es genauso gemacht wie ihr gesagt habt, leider zeigt er mir jetzt immer (also egal ob Makros zulassen oder nicht) nur die eine Seite ("StartSeite") an, die ich nicht nicht auf xlsveryhidden gesetzt habe.
Trotzdem Danke für Deine Hilfe.
Wenn jemand noch eine Idee hat, oder weiß wo der Fehler liegt wäre ich sehr dankbar :-)
Viele Grüße
Ines
AW: Abfrage Makros aktieren
23.02.2006 14:49:40
Andi
Hi,
nur kurz zu Erklärung:
Blätter, die mit xlSheetHidden ausgeblendet wurden, kann man über Format - Blatt - einblenden wieder sichtbar machen.
Blätter, die mit xlSheetVeryHidden ausgeblendet wurden, kann man nur mit VBA wieder sichtbar machen, bei deaktivierteb Makros also gar nicht.
Schönen Gruß,
Andi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige