Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
600to604
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
600to604
600to604
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Einblenden von Spalten nur über Makro

Einblenden von Spalten nur über Makro
18.04.2005 12:54:47
Spalten
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!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einblenden von Spalten nur über Makro
18.04.2005 13:09:43
Spalten
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
Anzeige
AW: Einblenden von Spalten nur über Makro
18.04.2005 13:12:54
Spalten
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 :-?
AW: noch nicht gelöst!!!
18.04.2005 14:06:01
Andre
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?
Anzeige
AW: noch nicht gelöst!!! Vielleicht jetzt!
18.04.2005 15:22:23
Luc
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 :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige