Clever-Excel-Forum

Normale Version: VBA Spalten mit Buttons aus- und einblenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=30804]Hallo zusammen,

es ist mit als Laie gelungen mittels eines VBAs folgendes zu erreichen
Ich habe 2 Buttons, der erste P1 und der zweite P2.
Wenn ich auf P1 klicke dann werden die Spalten mit P2 ausgeblendet
Wenn ich auf P2 klicke dann werden die Spalten mit P1 ausgeblendet.
Soweit so gut. Das Problem ist, wenn ich auf P1 klicken, und dann auf P2, dann sind alle Spalten logischerweise ausgeblendet. Man muss daran denken, vorher wieder auf P1 zu klicken, um die Spalten mit P2 wieder einzublenden. Das weiß ich, aber die anderen Benutzer tun sich schwer damit.
Ich sehe dafür 2 mögliche Lösungen.
1. Es muss ein dritter Button her, um alle einzublendet
2. Die Button müsste so programmiert werden, dass der Text auf dem Button sich ändert. Z.B. auf dem Button für P1 steht P1 ausblenden. Klicke ich darauf, dann erscheint auf dem Button P1 einblenden. Dasselbe für P2. Es wäre die Lösung, die ich bevorzuge.

Mein VBA ist folgender (die Spaltenbuchstaben stimmen. Es sind ausgeblendete Spalten dazwischen, die immer ausgeblendet bleiben müssen):
Private Sub P1_Click()
Columns("E").EntireColumn.Hidden = Not Columns("E").EntireColumn.Hidden
Columns("K").EntireColumn.Hidden = Not Columns("K").EntireColumn.Hidden
Columns("N").EntireColumn.Hidden = Not Columns("N").EntireColumn.Hidden
Columns("T").EntireColumn.Hidden = Not Columns("T").EntireColumn.Hidden
Columns("W").EntireColumn.Hidden = Not Columns("W").EntireColumn.Hidden
Columns("AC").EntireColumn.Hidden = Not Columns("AC").EntireColumn.Hidden
End Sub

Private Sub P2_Click()
Columns("D").EntireColumn.Hidden = Not Columns("D").EntireColumn.Hidden
Columns("J").EntireColumn.Hidden = Not Columns("J").EntireColumn.Hidden
Columns("M").EntireColumn.Hidden = Not Columns("M").EntireColumn.Hidden
Columns("S").EntireColumn.Hidden = Not Columns("S").EntireColumn.Hidden
Columns("V").EntireColumn.Hidden = Not Columns("V").EntireColumn.Hidden
Columns("AB").EntireColumn.Hidden = Not Columns("AB").EntireColumn.Hidden

End Sub


Kann mir jemand sagen, wie ich mein Problem regeln kann?

Vielen Dank im Voraus

Ivy
Hier die Lösung:

Gruß
Marcus
Hallo Marcus,

zuerst danke für die Antwort.
Wenn ich die Tabelle herunterlade, ist sie leider leer.
Was mache ich falsch?

Gruß

Ivy
Hallo Ivy,
Private Sub P1_Click()
Range("E:E,K:K,N:N,T:T,W:W,AC:AC").EntireColumn.Hidden = Not Columns("E").Hidden
Me.P1.Caption = Choose(Columns("E").Hidden + 2, "P1 einblenden", "P1 ausblenden")
End Sub

Private Sub P2_Click()
Range("D:D,J:J,M:M,S:S,V:V,AB:AB").EntireColumn.Hidden = Not Columns("D").Hidden
Me.P2.Caption = Choose(Columns("D").Hidden + 2, "P2 einblenden", "P2 ausblenden")
End Sub
Gruß Uwe
Vielen Dank Uwe, genau das habe ich gebraucht.

LG

Ivy