AW: Spaltenzahl in Array
23.08.2010 17:14:51
JogyB
Hallo Lorenz,
das Problem ist, dass die Gefahr besteht, dass ich jetzt was bastle, was zu Deinem restlichen Code nicht passt. Aber mal als Ansatz:
Function SpaltenAuslesen() As Range
Dim spAlte As Long
Const queLLe = "Einstellungen" ' hier Name oder Nummer des Einstellungsblatts
Const zeiLe = 5 ' Die Zeile, in der die Nullen oder Einsen stehen
' ThisWorkbook passt natürlich nur, wenn es in derselben Arbeitsmappe
' wie das Makro ist
With ThisWorkbook.Sheets(queLLe)
For spAlte = 1 To .Cells(zeiLe, Columns.Count).End(xlToLeft).Column
If .Cells(zeiLe, spAlte) = 1 Then
If SpaltenAuslesen Is Nothing Then
Set SpaltenAuslesen = .Cells(zeiLe, spAlte)
Else
Set SpaltenAuslesen = Union(SpaltenAuslesen, .Cells(zeiLe, spAlte))
End If
End If
Next
End With
End Function
' Und jetzt noch als Beispiel, wie Du auf anderen Blättern ausblendest
Sub test()
Dim verstBer As Range
' bereich mit obiger Funktion auslesen
Set verstBer = SpaltenAuslesen
With Worksheets("Tabelle2")
' Erstmal alles einblenden
.Rows(1).EntireColumn.Hidden = False
' Und dann die gewünschten Spalten raus
If Not verstBer Is Nothing Then _
.Range(verstBer.Address).EntireColumn.Hidden = True
End With
End Sub
Gruß, Jogy