Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalten ausblenden bei schliesen

Forumthread: Spalten ausblenden bei schliesen

Spalten ausblenden bei schliesen
27.05.2024 06:34:46
Dragee92
Hallo,

Ich brauchte einen Code der bei schließen einer excel Datei die Spalten a,e,r ausblendet und einen blattschutz auflegt.

Über eine Schaltfläche würde ich nach dem öffnen das ganze gern wieder aufheben können also mit Passwort Eingabe.

Hat vielleicht jemand eine Idee?
Ich fange gerade erst an zu lernen in excel.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Spalten ausblenden bei schliesen
27.05.2024 07:37:39
Beverly
Hi,

Excel hat einen Makrorekorder, mit dem man die einzelnen Schritte aufnehmen kann - benutze ihn zum Aufzeichnen für das Ausblenden und den Blattschutz. Aufrufen kannst du das aufgezeichnete Makro dann im Codemodul DieseArbeitmappe in der Prozedur Private Sub Workbook_BeforeClose(Cancel As Boolean)

Du kannst den aufgezeichneten Code gerne auch hier posten - einiges was der Markorekorder aufzeichnet kann man noch vereinfachen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/

Anzeige
AW: Spalten ausblenden bei schliesen
27.05.2024 10:02:36
daniel
HI
BeforeClose wäre hier aber zu unsicher.
Wenn jemand die Datei zuerst speichert ohne sie zu schließen und dann schließt ohne sie zu speichern, wären die Spalten beim nächsten Öffnen nicht ausgeblendet und man hätte keinen Blattschutz.

daher sollte man das ganze im BeforeSave-Event durchführen.
Damit man hinterher ungestört weiterarbeiten kann, kann man ja im AfterSave-Event die Spalten wieder einblenden.
dh mit diesem Code im Modul "DieseArbeitsmappe"
Option Explicit

Const pw As String = "dein Passwort"
Const Spalten As String = "A:A,E:E,R:R"
Const TB As String = "Tabelle1"

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
With Sheets(TB)
.Unprotect Password:=pw
.Range(Spalten).EntireColumn.Hidden = False
End With
Me.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Sheets(TB)
.Range(Spalten).EntireColumn.Hidden = True
.Protect Password:=pw
End With
End Sub
Anzeige
AW: Spalten ausblenden bei schliesen
27.05.2024 09:50:42
UweD
Hallo

In ein "Normales Modul" diesen Code einfügen

Sub Einblenden()

Dim RNG As Range
Dim TB As Worksheet
Dim PW As String, Eingabe As String

Set TB = Sheets("Tabelle1")
Set RNG = TB.Range("A:A,E:E,R:R")
PW = "Geheim"

Eingabe = InputBox("Passwort", "Spalten freigeben")

If Eingabe = PW Then
TB.Unprotect PW
RNG.EntireColumn.Hidden = False
End If
End Sub

Das Makro kannst du dann einem Button zuweisen

In den Codebereich von "DieseArbeitsmappe" das hier:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim RNG As Range
Dim TB As Worksheet
Dim PW As String, Eingabe As String

Set TB = Sheets("Tabelle1")
Set RNG = TB.Range("A:A,E:E,R:R")
PW = "Geheim"

RNG.EntireColumn.Hidden = True
TB.Protect PW

ThisWorkbook.Save
End Sub


Das kannst/solltest du alles noch absichert (Code mit Passwort verstecken / Userform mit * anstelle von Inputbox usw.)
Um das Prinzip zu verstehen dürfte das reichen.

LG UweD
Anzeige
AW: Spalten ausblenden bei schliesen
27.05.2024 16:12:29
UweD
Hi

Eine Sache noch.
Falls der Nutzer das falsche Passwort verwendet, bzw. bewusst nicht entsperrt wird, dann gibt es beim Schliessen einen Fehler.

Am einfachsten wird der so abgefangen.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim RNG As Range
Dim TB As Worksheet
Dim PW As String, Eingabe As String

Set TB = Sheets("Tabelle1")
Set RNG = TB.Range("A:A,E:E,R:R")
PW = "Geheim"

TB.Unrotect PW
RNG.EntireColumn.Hidden = True
TB.Protect PW

ThisWorkbook.Save
End Sub


LG UweD
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige