Einblenden von Spalten nur über Makro

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: Einblenden von Spalten nur über Makro
von: andre
Geschrieben am: 18.04.2005 12:54:47
Hallo alle zusammen,
Ich möchte gern die Spalten G bis L über ein Makro ausblenden und anschließend möchte ich das VBA- Projekt schützen, damit keiner die Spalten einblenden kann. Folgendes Makro habe ich:


Sub ausblenden()
Columns("G:L").EntireColumn.Hidden = True
End Sub

Hiermit werden die Spalten ausgeblendet.
Problem: die Spalten können ohne ein Makro wieder eingeblendet werden, was aber nicht sein soll. Wie müsste ich das Makro schreiben, oder gibt es dafür keine Lösung!?
Ich hoffe mir kann jemand helfen.
Danke im voraus!
Bild

Betrifft: AW: Einblenden von Spalten nur über Makro
von: Harald E
Geschrieben am: 18.04.2005 13:09:43
Hallo Andre,
ich habe folgende Codes (in DieseArbeitsmappe)im Einsatz:
Es liegt ein Blattschutz auf der Tabelle (ohne Passwort).
Du wirst zweimal nach der Berechtigung gefragt. Ist sie richtig ("test"), werden die Spalten eingeblendet. Beim Schliessen werden sie wieder ausgeblendet.


Private Sub Workbook_Open()
Passw = InputBox("Geben Sie bitte den Berechtigungscode ein !", "Kontrollabfrage")
If Passw <> "test" Then
MsgBox "Leider falsch. Noch ein Versuch"
Else
GoTo weiter
End If
Passw = InputBox("Geben Sie bitte den Berechtigungscode ein !", "Kontrollabfrage")
If Passw <> "test" Then
MsgBox "Kein Zugriff"
Exit Sub
End If
weiter:
ThisWorkbook.Sheets("Tabelle1").Unprotect 'ggf "Passwort"
Sheets("Tabelle1").Columns("G:L").Hidden = False
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Sheets("Tabelle1").Unprotect 'ggf "Passwort"
Sheets("Tabelle1").Columns("G:L").Hidden = True
ThisWorkbook.Sheets("Tabelle1").Protect 'ggf "Passwort"
ThisWorkbook.Save
End Sub

Gruß
Harald
Bild

Betrifft: AW: Einblenden von Spalten nur über Makro
von: Luc
Geschrieben am: 18.04.2005 13:12:54
Hallo Andre,
Worksheets("xxx").Protect passwort, True, True, True, True
Das letzte True steht für UserInterfaceOnly (nur per Makro einstellbar), dann wird das Blatt zwar gegen Eingriffe von der Benutzeroberfläche, nicht aber gegen Eingriffe durch Makros geschützt (ist in der Editorhilfe etwas verworren erläutert).
Alles klar?
Gruß Luc :-?
Bild

Betrifft: AW: noch nicht gelöst!!!
von: Andre
Geschrieben am: 18.04.2005 14:06:01
Dank euch beiden,ich habe soeben eure Varianten getestet, funktioniert prima, aber leider ist der Blattschutz nicht sicher genug. Das einblenden müsste nur durch ein Makro möglich sein so änlich wie beim ausblenden eines Tabellenblattes, wo ich dies auch wieder über ein Makro einblenden kann sofern man den VBA Projektcode kennt. Mit dem folgenden Makro ist nicht ersichtlich, dass das Tabellenblatt1 ausgeblendet wurde.

Sub ausblenden()
Sheets("Tabelle1").Visible = xlVeryHidden
End Sub

So ähnlich müsste es mit dem Spalten aus- und einblenden funktionieren.
Blos wie???
Bild

Betrifft: AW: noch nicht gelöst!!! Vielleicht jetzt!
von: Luc
Geschrieben am: 18.04.2005 15:22:23
Hallo Andre,
falls du nur meinst, dass es stört, dass man noch sehen kann, dass hier Zeilen ausgeblendet wurden, kann ich mir eine etwas aufwendige Lösung vorstellen. Aber ein veryhidden-vergleichbares Verfahren gibt's m.W. für Zeilen/Spalten nicht.
Was das nicht sicher genug betrifft, ist mir nicht ganz klar warum! Ohne Passwort kann man ein geschütztes Blatt nicht verändern, nur ansehen. Die Makros musst du dann natürlich im Editor ebenfalls mit Passwort schützen, dass sie nicht eingesehen wdn können. Und ein Makro, das du zum evtl Einblenden benutzen willst, musst du natürlich verstecken. Das geht mit Private am Anfang des Makrokopfes (allerdings fkt das Makro dann auch nur im jeweiligen Projekt). Das Makro kann dann nur aufrufen, wer seinen Namen kennt.
Zur Tarnung des Ausgeblendetseins von Zeilen/Spalten schlage ich vor, Arbeitsblatt-Vorspalte und -Kopfzeile auszublenden (1.Stufe="hidden") und wenn es noch trickreicher sein soll, neue anzulegen (aber über alle Zeilen und Spalten des Blattes - 2.Stufe="very hidden"). Außerdem kann auch noch die Anzeige von Formeln verhindert wdn.
Gruß Luc :-?
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Einblenden von Spalten nur über Makro"