Clever-Excel-Forum

Normale Version: [Excel mVBA] Bereiche ein und ausblenden mit Buttons
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe CEF-Community,

ich bin dabei ein Tool zur Kalkulation unserer Geräteschränke in ein Formular zu gestallten. Dazu hatte ich mir folgendes überlegt:

Ich bereite die Kalkulation für den maximalen Ausbau vor, blende die Gerätschaften aus und lasse sie dann durch Buttons wieder einblenden. 
So weit so gut, Ein und Ausblenden im Bezug auf Zellenwerte bekomme ich mit VBA grad noch hin, mit Buttons bin ich bisher aber noch überfordert. Wo es hängt ist die  vorallem die Überprüfung des Ganzen. 

Ich habe drei verschiedene Gerätetypen (aktuell nur 2 dargestellt), ich wollte ich maximal 6 Buttons darstellen zum Hinzufügen (einblenden) und zum entfernen (ausblenden) Dabei sollten natürlich immer nur die letzten Geräte in der Reihe ein bzw. ausgeblendet werden. Im weiteren spreche ich nur vom ersten Gerät PC2003.(das Schema lässt sich dann ja später erweitern)

Ergo muss ich mir eine Funktion schaffen, die Überprüft ob ein Gerät bereits vorhanden ist. 
-> Hierzu hätte ich die die "active" Felder mit Werten von 0 für aus und 1 für ein in jeder der Matrizen (C30;C49;C68;C87;C106;C125)
Wenn dieses Feld auf 1 steht ist der Bereich bereits bearbeitet worden, muss also bereits eingeblendet sein. 

Ich hab die Bereiche bereits in Gliederungen eingeteilt. Für die PC2003s gelten hier 16er Blöcke.
Block1: 30-46; Block2: 49-65; Block3: 68-84; Block4: 87-103 Block5: 106-122 Block6: 125-141

Beim 1. Click auf den "Add PC2003" Button müsste also überprüft werden, ob in C30 der Wert 0 ist und wenn Ja der Bereich 30-46 entireRow eingeblendet werden. Sollte der Wert von C30 auf 1 stehen, muss überprüft werden wie der Wert in C49 ist, ist dieser 0 wird Block2 eingeblendet ist der Wert 1 ... und so weiter. 

Sind die maximalen 6 Gerätschaften bereits eingeblendet, sollte der Button deaktiviert werden. 

Der Removebutton müsste in der gleichen Weise funktionieren beginnend mit Block6. 


Könntet ihr mir da weiterhelfen ?  Blush  Wäre super! 



Ich war so frei das Sheet hier anzuhängen (losgelöst von den Bezügen in der Orginaldatei sieht es wahrscheinlich etwas wüst aus.)
Hallo Skibi,

mit dem Button "Erledigt" hier im Forum kennzeichnest Du, wenn Deine Frage gelöst ist. Das ist sie doch noch nicht, oder?

Mal allgemein zu den Buttons. Woran scheitert es genau? Schon am If? Ich beachte jetzt mal das ja nicht - Zitat: "C30 der Wert 0 ist und wenn Ja "

Im Prinzip schachtelst Du das:

Code:
If Range("C30") = 0 Then

ElseIf C49 = 0 Then

ElseIf …

End If
Hi Schauan,

Ich hab die herangehensweise etwas geändert, so gesehen ist die ursprüngliche Anfrage zwar so noch nicht gelöst. Habe es aber auf anderem Wege beseitigt. 
Da meine VBA Skills mehr gegoogelt als gekonnt sind, war ich dann doch etwas zu schüchtern meine Lösung hier hineinzuschreiben.  :16:

Ich überprüfe nun einfach ob die Rows eingeblendet sind oder nicht und blende sie ggfs. ein. Hier das Beispiel zum Add PC2001 Button:

Code:
Private Sub btnAddMatrix2001_Click()

Application.ScreenUpdating = False
'MTX1
If Rows("174:178").Hidden = True Then
Rows("174:178").Select
Selection.EntireRow.Hidden = False
Else
'MTX2
If Rows("180:184").Hidden = True Then
Rows("180:184").Select
Selection.EntireRow.Hidden = False
Else
'MTX3
If Rows("186:190").Hidden = True Then
Rows("186:190").Select
Selection.EntireRow.Hidden = False
Else
'MTX4
If Rows("192:196").Hidden = True Then
Rows("192:196").Select
Selection.EntireRow.Hidden = False
Else
'MTX5
If Rows("198:202").Hidden = True Then
Rows("198:202").Select
Selection.EntireRow.Hidden = False
Else
'MTX6
If Rows("204:208").Hidden = True Then
Rows("204:208").Select
Selection.EntireRow.Hidden = False
End If
End If
End If
End If
End If
End If
Application.ScreenUpdating = True
End Sub

LG Skibi