Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
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
Inhaltsverzeichnis

Makro ausblenden und sperren von Spalten

Makro ausblenden und sperren von Spalten
01.04.2022 08:22:22
Spalten
Hallo Zusammen,
ich habe schon sehr viel gegoogelt, aber leider keine Lösung für mein Problem gefunden. Ich hoffe, ihr könnt mir helfen.
Es geht um folgende Aufgabenstellung.
Ich habe ein File, in welches verschiedene Kennzahlen eingetragen werden sollen. Dieses File enthält Spalten für alle 12 Monate, wo für den betreffenden Monat Werte eingetragen werden sollen. Nun möchte ich über eine Wenn - Bedingung mittels Makro gerne Spalten schreibschützen oder ganz ausblenden.
Ich teste in meinem File drei Fälle:
Ist der Monat in der Spalte kleiner als der aktuell ausgewählte Monat, dann gibt er mir in Zeile 13 eine 1 zurück
Ist der Monat in der Spalte = dem aktuell ausgewähltem Monat, dann gibt er mir in Zeile 13 eine 2 zurück
Trifft nichts davon zu, also ist der Monat größer als der ausgewählte Monat, wird eine 0 zurückgegeben.
Jetzt wären meine Wünsche an das Makro:
Wenn in Zeile 13 eine 1 zurück gibt, soll er für alle Spalten, in denen die Bedingung zutrifft diese Spalten schreibschützen.
Wenn eine 2 zurückgegeben wird, soll nichts passieren
Wenn eine 0 zurückgegeben wird, soll er alle Spalten, für die das zutrifft, ausblenden.

Ich hoffe, ich habe mein Problem verständlich beschrieben und ihr könnt mir helfen. Leider habe ich bisher noch ganz wenig Erfahrung in VBA.
Danke und viele Grüße!
Leslie

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

Betreff
Datum
Anwender
Anzeige
AW: Makro ausblenden und sperren von Spalten
01.04.2022 08:52:47
Spalten
Hi
abhängig von den Werten in Zeile 13:

dim c as long
ActiveSheet.Unprotect
for C = 1 to 12 'ggf anpassen an die Spalten, in denen die Zahlen 0, 1, 2 stehen.
Select Case Cells(13, C).value
Case 0: Columns(C).Hidden = True
Case 1: Columns(C).Locked = true
Case 2
Columns(C).Hidden = False
Columns(C).Locked = False
Case else
end Select
next
ActiveSheet.Protect
und hier eine Methode, die unabhängig von Zeile 13 mit dem aktuellen Monat funktioniert:

dim C as long
C = Month(Date) 'aktueller Monat
ActiveSheet.Unprotect
With Range("A:L") 'Eingabebereich
.Columns(C).Locked = False
.EntireColumn.Hidden = False
if C > 1 Then .Columns(1).Resize(, C - 1).Locked = True
if C 
Gruß Daniel
Anzeige
AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:09:26
Spalten
Hallo Daniel,
vielen Dank für deine schnelle Antwort und Hilfe.
Leider passiert gar nichts, wenn ich den Code kopiere und auf meine Spalten anpasse.. ich mache etwas falsch.
Wärst du nochmal so lieb und würdest dir das nochmal anschauen?
https://www.herber.de/bbs/user/152176.xlsm
Ich habe mal ein Testfile hochgeladen. Bin leider noch absoluter Anfänger was Makros angeht..
Viele Grüße
Leslie
AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:19:44
Spalten
HI
deine Datei enthält keine Makros. Daher kann auch nichts funktionieren.
du musst die makros schon einfügen. Bitte zeige zumindest den Code mit deinen Anpassungen.
Gruß Daniel
Anzeige
AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:31:06
Spalten
Hi,
ich hatte folgenden Code eingefügt: In meiner Testdatei stehen die Kriterien in Zeile 4 und die Monate in Spalte B bis M
Dim c As Long
ActiveSheet.Unprotect
For c = 2 To 13
Select Case Cells(4, c).Value
Case 0: Columns(c).Hidden = True
Case 1: Columns(c).Locked = True
Case 2
Columns(c).Hidden = False
Columns(c).Locked = False
Case Else
End Select
Next
ActiveSheet.Protect
Mir ist jedoch aufgefallen, dass die Prozedur nicht gespeichert wird, weshalb du den Code in der Datei nicht sehen kannst. Also einfach kopieren in den Editor unter Tabelle2 klappt scheinbar nicht. Was muss ich anders machen?
Danke!
Anzeige
AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:44:47
Spalten
Hi
weiß nicht, funktioniert doch.
dass man bei einem Makro die Kopf- und Endzeile des Makros noch hinzufügen muss, sollte klar sein.
auch muss das Blatt, auf dem gearbeitet werden soll, aktiv sein. Soll der Code laufen während das Blatt "Parameter" aktiv ist, müsstest du vor jedem Cells und Columns noch ein Sheets("Tabelle1"). einfügen.
Gruß Daniel
AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:30:25
Spalten
Hallo sind keine Makros enthalten
Hier eine Lösung von mir
- Rechtsclick auf den Tabellenblattreiter von Tabelle1
- Code anzeigen
- Code rechts reinkopieren
Beim Aktivieren des Blattes (also, wenn du von Parameter zurückkommst) läuft das Makro automatisch ab

Private Sub Worksheet_Activate()
Dim RNG As Range, Z
Set RNG = Range("B4:M4")
ActiveSheet.Protect userinterfaceonly:=True
Application.ScreenUpdating = False
'Reset
RNG.EntireColumn.Locked = False
RNG.EntireColumn.Hidden = False
For Each Z In RNG
Select Case Z.Value
Case 1
Z.EntireColumn.Locked = True
Case 2
Z.EntireColumn.Locked = False
Z.EntireColumn.Hidden = False 'einblenden
Case ""
'nix
Case 0
Z.EntireColumn.Hidden = True 'ausblenden
End Select
Next
End Sub
LG UweD
Anzeige
AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:33:22
Spalten
Hallo UweD,
super!
Vielen vielen Dank, nun klappt es!
Danke an euch beide für die schnelle Unterstützung :)
Viele Grüße
Leslie
AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:39:09
Spalten
Case2 und Case "" können noch weggelassen werden, da durch den Reset bereits richtig

For Each Z In RNG
Select Case Z.Value
Case 1
Z.EntireColumn.Locked = True
Case 0
Z.EntireColumn.Hidden = True 'ausblenden
End Select
Next

AW: Makro ausblenden und sperren von Spalten
01.04.2022 09:32:57
Spalten
oder so:?

Sub aaa()
Dim c As Long
With ActiveSheet
.Unprotect
.Columns.Locked = False
.Columns.Hidden = False
For c = 2 To 13
Select Case c - 1
Case Is  Month(Date)
.Columns(c).Hidden = True
End Select
Next c
.Protect
End With
End Sub
Gruß
Rudi
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige