In der Hoffnung, dass es jetzt mit Mozilla funktioniert und der Code richtig formatiert angezeigt wird hier noch eimal mein Anliegen:
Hallo :)
In meinem Programm habe ich die Möglichkeit in den Zeilen I14 bis I50 zwischen drei Eingaben "HAZ", "EMZF" und "EMZ" zu wählen.
Je nachdem, was ich wähle blenden sich die dazugehörigen Spalten ein. In eine Zelle kann ich nur eine Option eintragen, aber ich kann innerhalb von I14 bis I50 auch mehrere Optionen eintragen, dann blenden sich dementsprechend mehr Spalten ein.
Nun mein Problem bzw. meine Probleme:
1. Gebe ich in einer Zelle zuerst EMZ und danach in einer anderen Zelle HAZ ein, werden nur die zu EMZ zugehörigen Spalten eingeblendet. Die zu HAZ gehörenden Spalten bleiben ausgeblendet. Anders herum funktioniert es einwandfrei.
2. Gebe ich z. B. HAZ in einer Zelle ein und ändere diese Zelle dann in EMZ um, dann werden zwar die zu EMZ gehörenden Spalten eingeblendet, aber die zu HAZ gehörenden Spalten bleiben eingeblendet (die sollen aber wieder ausgeblendet werden).
Lösche ich alle Inhalte in I14 bis I15 schließen sich alle Spalten, was ich auch so will (falls das relevant ist). Ich hoffe ich konnte alles verständlich beschreiben und dass mir jemand helfen kann. Danke im Voraus und Grüße Singsa :) PS: bin leider absoluter Neuling in VBA :)
Mein Programm:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim varAusblend As Range
Dim varSchalter As Range
'Wenn nur EMZ (HAZ und EMZF nicht)aktiv, dann entsprechende Parameter einblenden
If WorksheetFunction.CountIf(Range("I14:I50"), ["EMZ"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZF"]) = 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["HAZ"]) = 0 Then
ActiveSheet.Columns("P:U").Hidden = False And ActiveSheet.Columns("V:AG").Hidden = True
'Wenn nur HAZ (EMZ und EMZF nicht)aktiv, dann entsprechende Parameter einblenden
ElseIf WorksheetFunction.CountIf(Range("I14:I50"), ["EMZ"]) = 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZF"]) = 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["HAZ"]) > 0 Then
ActiveSheet.Columns("AD:AG").Hidden = False And ActiveSheet.Columns("P:AC").Hidden = True
'Wenn nur EMZF (HAZ und EMZ nicht)aktiv, dann entsprechende Parameter einblenden
ElseIf WorksheetFunction.CountIf(Range("I14:I50"), ["EMZ"]) = 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZF"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["HAZ"]) = 0 Then
ActiveSheet.Columns("V:AC").Hidden = False And ActiveSheet.Columns("P:U").Hidden = True And ActiveSheet.Columns("AD:AG").Hidden = True
'Wenn EMZF und HAZ (EMZ nicht)aktiv, dann entsprechende Parameter einblenden
ElseIf WorksheetFunction.CountIf(Range("I14:I50"), ["HAZ"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZF"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZ"]) = 0 Then
ActiveSheet.Columns("V:AG").Hidden = False And ActiveSheet.Columns("P:U").Hidden = True
'Wenn EMZF und EMZ (HAZ nicht)aktiv, dann entsprechende Parameter einblenden
ElseIf WorksheetFunction.CountIf(Range("I14:I50"), ["HAZ"]) = 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZF"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZ"]) > 0 Then
ActiveSheet.Columns("P:AC").Hidden = False And ActiveSheet.Columns("AD:AG").Hidden = True
'Wenn EMZ und HAZ (EMZF nicht)aktiv, dann entsprechende Parameter einblenden
ElseIf WorksheetFunction.CountIf(Range("I14:I50"), ["HAZ"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZF"]) = 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZ"]) > 0 Then
ActiveSheet.Columns("P:U").Hidden = False And ActiveSheet.Columns("AD:AG").Hidden = False And ActiveSheet.Columns("V:AC").Hidden = True
'Wenn HAZ und EMZF und EMZ aktiv, dann entsprechende Parameter einblenden
ElseIf WorksheetFunction.CountIf(Range("I14:I50"), ["HAZ"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZF"]) > 0 And WorksheetFunction.CountIf(Range("I14:I50"), ["EMZ"]) > 0 Then
ActiveSheet.Columns("P:AG").Hidden = False
'Wenn nichts aktiv, dann alle Parameter ausblenden
Else: ActiveSheet.Columns("P:AG").Hidden = True
End If
End Sub
|