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

AW: Spalten bei bestimmten Wert ausblenden per Vba

Forumthread: AW: Spalten bei bestimmten Wert ausblenden per Vba

AW: Spalten bei bestimmten Wert ausblenden per Vba
14.08.2025 22:22:57
Robert Pilz
Hallo liebe Exelfreunde;

nach eingehenden probieren brauche ich nochmal Eure Hilfe. Mit diesem Makro erreiche ich nur das die Spalten B und E nicht ausgeblendet aber die jeweils anderen verbundenen
Spalten. Was kann ich tun das zb B:D; E:G komplett eingeblendet bleiben und die anderen Zellen ausgeblendet werden. Weiss mir keinen Rat mehr.
Sub ZZellenAus()



Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim checkRow As Long
Dim colsToCheck As String


Set ws = ActiveSheet
checkRow = 4
colsToCheck = "C,D,F,G,I,J,K" ' Zu prüfende Spalten
colarr = Split(colsToCheck, ",")
Set rng = ws.Columns(colarr(0))
For i = 1 To UBound(colarr)
Set rng = Union(rng, ws.Columns(colarr(i)))
Next

For Each cell In rng.Cells
' Prüfe nur die festgelegte Zeile
If cell.Row = checkRow Then
If cell.Value = 0 Or _
LCase(cell.Value) = "spalten ausblenden" Then
cell.EntireColumn.Hidden = True
Else
cell.EntireColumn.Hidden = False
End If
End If
Next cell

Application.ScreenUpdating = True
MsgBox "Spalten wurden basierend auf Zeile " & checkRow & " verarbeitet., vbInformation"
End Sub




https://www.herber.de/bbs/user/178607.xlsx
Für Eure Mühen wäre ich dankbar.


LG Robert

Habe eine Beispieldatei angehängt das es bildlicher wird.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AW: Spalten bei bestimmten Wert ausblenden per Vba
14.08.2025 22:23:44
Robert Pilz
Der Wert ist 0


LG Robert
AW: AW: Spalten bei bestimmten Wert ausblenden per Vba
14.08.2025 23:46:05
Ulf
Hi,
etwa so
Option Explicit


Sub ZZellenAus()
Dim ws As Worksheet
Dim rng As Range
Dim rngCell As Range
Dim checkRow As Long
Dim colsToCheck As String


Set ws = ActiveSheet
checkRow = 4

' colsToCheck = "C,D,F,G,I,J,K" ' Zu prüfende Spalten
' colarr = Split(colsToCheck, ",")
' Set rng = ws.Columns(colarr(0))
' For i = 1 To UBound(colarr)
' Set rng = Union(rng, ws.Columns(colarr(i)))
' Next
'
' For Each cell In rng.Cells
' ' Prüfe nur die festgelegte Zeile
' If cell.Row = checkRow Then
' If cell.Value = 0 Or LCase(cell.Value) = "spalten ausblenden" Then
' cell.EntireColumn.Hidden = True
' Else
' cell.EntireColumn.Hidden = False
' End If
' End If
' Next cell
Application.ScreenUpdating = False
Set rng = ws.Range("A" & checkRow & ":V" & checkRow)
For Each rngCell In rng.Cells
If rngCell.Value = 0 Or LCase(rngCell.Value) = "spalten ausblenden" Then
Select Case rngCell.Column
Case 2 To 7
rngCell.EntireColumn.Hidden = False
Case Else
rngCell.EntireColumn.Hidden = True
End Select
Else
rngCell.EntireColumn.Hidden = True
End If
Next
Application.ScreenUpdating = True
MsgBox "Spalten wurden basierend auf Zeile " & checkRow & " verarbeitet., vbInformation"
End Sub

hth
Ulf
Anzeige
AW: AW: Spalten bei bestimmten Wert ausblenden per Vba
14.08.2025 23:53:55
daniel
das passt doch vorne und hinten nicht zusammen.
das fängt schon mal an, dass du die Schleife unnötigerweise über alle Zellen der gesamten Spalte laufen lässt und nicht nur über die notwendige Zeile
dann wäre die Frage: was ist die relevante Zeile? im Code nimmst du die Zeile 4 (checkrow) in der Beispieldatei stehen aber in Zeile 5 Werte.
dann prüfst du die Spalten C,D,F,G,I,J,K, aber nicht die Spalten, in denen die Werte stehen (B,E,H,N,R,T).
in Verbundzellen steht der Wert immer in der ersten Zelle des verbundes (oben links), die restlichen Zellen sind normalerweise leer.


also wenn dann vielleicht so

Sub ZZellenAus()

Dim Cell As Range
For Each Cell In Range("B5:V5")
If Cell.Address = Cell.MergeArea(1).Address Then
Select Case Cell.Value
Case 0, "spalten ausblenden"
Cell.MergeArea.EntireColumn.Hidden = True
Case Else
Cell.MergeArea.EntireColumn.Hidden = False
End Select
End If
Next
End Sub


Gruß Daniel

Anzeige
gestern waren es noch Zeilen
15.08.2025 01:29:41
Uduuh
Hallo,
das Prinzip bleibt aber.
Sub Ausblenden()

Dim rngZelle As Range
Application.ScreenUpdating = False

For Each rngZelle In Rows(5).SpecialCells(xlCellTypeConstants)
With rngZelle.MergeArea
.EntireColumn.Hidden = .Cells(1) = 0
End With
Next rngZelle

End Sub


Gruß aus'm Pott
Udo
Anzeige
AW: AW: Spalten bei bestimmten Wert ausblenden per Vba
15.08.2025 01:16:53
Robert Pilz
Hallo Daniel,

Deine Variante funktioniert Danke. Danke an alle die sich bemüht haben.



LG Robert

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige