Ein nettes Hallo an das Forum,
suche eine Lösung in VBA, da ich keine Ahnung in diesem Bereich habe, habe ich es trotzdem einmal versucht etwas zusammen zu stellen. Bis auf einen Teil funktioniert es. In Zelle B1 = Anzahl Spieler diese Zahl wird durch rechtem Mausklick verändert und in den Zellen E1 bis L1 werden Namen aufgelistet, je nach Zahl die in Zelle B1 steht, werden bestimmte Spalten ausgeblendet.
Beispiel:
In B1 steht 3 dann Werden die Spalten von H bis L ausgeblendet da es nur 3 Spieler sind usw. jetzt mein Problem. Wenn ich auf B1 klicke und aus der 3 wird die 4 sollte die Spalte H eingeblendet werden und das schaffe ich nicht.
Vielleicht kann mir jemand das fehlende Teil in das VBA einpflegen.
Das ist das VBA
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect
If Not Intersect(Target, Range("B1")) Is Nothing Then
Cancel = True
Range("B1") = Range("B1").Value + 1
End If
ActiveSheet.Protect
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
' Nimm den Wert des geänderten Bereiches
Select Case Target.Value
' Vergleiche mit ZAHL, nicht String
Case 3
Range("h:l").EntireColumn.Hidden = True
Case 4
Range("i:l").EntireColumn.Hidden = True
Case 5
Range("j:l").EntireColumn.Hidden = True
Case 6
Range("k:l").EntireColumn.Hidden = True
Case 7
Range("l:l").EntireColumn.Hidden = True
Case 8
Range("l:l").EntireColumn.Hidden = True
Case 2
' Blende Spalten g:O aus
Columns("e:o").EntireColumn.Hidden = True
Range("e:o").EntireColumn.Hidden = False
End Select
' Setze den Cursor zurück auf "B1"
Target.Select
End If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect
If Not Intersect(Target, Range("B1")) Is Nothing Then
Cancel = True
Range("B1") = 2
End If
End Sub
Gruß Adde