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
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