809 Aufrufe
Gefragt in Tabellenkalkulation von
Hi!

Kann ich Spalten nach Ihrer Überschrift anzeigen lassen?

Ich habe also ein Datenblatt. In den Zeilen 1-6 stehen verschiedene Informationen, die einfach stehen bleiben sollen und mit der Abfrage nichts zu tun haben. In Zeile 7 stehen Namen: Müller, Maier, ...
Unter diesen Namen stehen in Zeile 8 JEWEILS 3 Spalten mit "A, B, C" überschrieben, ab Zeile 9 kommen jetzt die einzelnen Datensätze.

Jeder Name hat also 3 Spalten unter sich mit A B und C.

Kann ich jetzt sagen, ich will nur alle A angezeigt haben? Oder alle B?

Wie mache ich das? Ich kapier's nicht.
Vielen Dank!

me.

1 Antwort

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

du müsstest alle Spalten, die du ausblenden willst per Hand erst auswählen und dann ausblenden.
Oder du machst das per Makro.

Hier mal ein Beispiel nach deinen Angaben. Ich gehe davon aus, dass deine erste Spalte A auch in Spalte A steht:
Sub spalten_anzeigen()

Dim sp As String
Dim Spalte As Long
Dim lspalte As Long

'letzte Spalte ermitteln
lspalte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column

'Spalte abfragen, die angezeigt werden soll
sp = InputBox("Bitte geben Sie die Spalte ein, die angezeigt werden soll A,B,C oder alle)!", "Eingabe")

'Prüfung der Eingabe und Spalte wird in Variable geschrieben
Select Case LCase(sp)
Case Is = "a"
Spalte = 1
Case Is = "b"
Spalte = 2
Case Is = "c"
Spalte = 3
Case Is = "alle"
ActiveSheet.Columns.Hidden = False
Exit Sub
Case Else
MsgBox "Falsche Eingabe!", 16, "Fehler"
Exit Sub
End Select

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

'erst einmal alle Spalten ausblenden
ActiveSheet.Range(Cells(1, 1), Cells(1, lspalte)).EntireColumn.Hidden = True

'nun nur die Spalten einblenden, die angezeigt werden sollen
While Spalte <= lspalte
ActiveSheet.Cells(1, Spalte).EntireColumn.Hidden = False
Spalte = Spalte + 3
Wend

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

End Sub

Der Code gehört in ein allgemeines Modul.

Gruß

M.O.
...