Clever-Excel-Forum

Normale Version: Zeilen in Abhängigkeit eines anderen Feldes ausblenden/einblenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich konzipiere derzeit ein Tool zur Berechnung von gewerblichen Gebäudeversicherung im Rahmen einer Mischkalkulation. Hierzu habe ich eine Excel erstellt, in der die prämienrelevanten Faktoren sowie die Anzahl der Betriebe im Gebäude eingegeben werden muss. Jetzt hätte ich gerne, um das ganze noch Anwenderfreundlicher zu gestalten, dass bei der Eingabe in das Feld Anzahl der Betriebsarten (in meinem Fall B20), weiter unten 3 neue Zeilen erscheinen, in denen man dann zusätzlich die Informationen zum weiteren Betrieb eingeben kann. Ich habe leider nichts im Internet finden können, dass mir hier unkompliziert und schnell auf die Sprünge helfen kann. Meines Erachtens müsste das aber mit Excel doch möglich sein oder? Kann mir hier jemand helfen? 

Also je nach Eingabe sollen bis zu 8 mal die eben beschriebenen Zeilen erscheinen. Ist das möglich oder können die Zeilen nur dauerhaft eingeblendet sein und werden dann halt eben nicht durch den Nutzer befüllt?

Danke vorab :)
zur Veranschaulichung noch 1 Screenshot anbei:

Der Wert in Zelle B:20 soll hier ausschlaggebend für die nachfolgendenden Felder sein (diese sollen bis zu 8 mal vorkommen). In Feld B:20 können nur ganze Zahlen zwischen 2 und 8 eingegeben werden. Die Zeilen 26-52 sollen ausgeblendet werden und je nach Eingabe der Anzahl weiterer Betriebe (Zelle B:20) sollen diese dann entsprechend wieder auftauchen. Bekommt man sowas hin ?
Hallo,

mit VBA ist so etwas möglich, - kommt das für Dich in Frage?

Grüße

Norbert
Hi Norbert,

danke für die Antwort ! ja prinzipiell schon nur bräuchte ich da hilfe beim erstellen des makros, da ich so etwas noch nie selbst erstellt hab. Habe zwar in Verbindung mit anderen Geschichten schon damit gearbeitet aber fürs erstellen fehlt mir dann doch der it hintergrund :>
Hallo, 

dann solltest Du eine anonymisierte Musterdatei mit Wunschergebniss hier ins Forum einstellen, denn es wird kaum jemand Deine Datei nachbauen, wenn Du schon keine Vorarbeit leisten kannst. 

Grüße
Norbert
C20: 2 (oder 3 oder 4 oder ...)
B22: =INDEX({"Risiko";"RKZ";"Prozentual";""};REST(SEQUENZ(C20*4)-1;4)+1)
Hallo,

so kann man es z. B. auch machen (Code in das Codeblatt des Worksheets kopieren, evt. Blattnamen noch anpassen):

PHP-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim EingabeZelle As Range
    Dim A 
As Integer
    Dim E 
As Integer
    Dim F 
As Integer
    
'Zeilen aus- und einblenden nach Bedingungen von bis
    Set EingabeZelle = Range("B20")
    A = 21
    E = 52
    Tabelle1.Rows("21:52").EntireRow.Hidden = True
    If Application.Intersect(EingabeZelle, Range(Target.Address)) >= 2 And _
    Application.Intersect(EingabeZelle, Range(Target.Address)) <= 8 Then
        
        If EingabeZelle = 1 Then
        F = 20 + 4
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        ElseIf EingabeZelle = 2 Then
        F = 20 + 8
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        ElseIf EingabeZelle = 3 Then
        F = 20 + 12
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        ElseIf EingabeZelle = 4 Then
        F = 20 + 16
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        ElseIf EingabeZelle = 5 Then
        F = 20 + 20
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        ElseIf EingabeZelle = 6 Then
        F = 20 + 24
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        ElseIf EingabeZelle = 7 Then
        F = 20 + 28
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        ElseIf EingabeZelle = 8 Then
        F = 20 + 32
        Tabelle1.Rows(A & ":" & F).EntireRow.Hidden = False
        End If
        End If

    If Application.Intersect(EingabeZelle, Range(Target.Address)) < 2 Or _
    Application.Intersect(EingabeZelle, Range(Target.Address)) > 8 Then
    MsgBox "Bitte geben Sie eine Zahl zwischen 1 und 8 ein!", vbOKOnly
    End If
End Sub 
Grüße

Norbert