Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[Excel mVBA] Bereiche ein und ausblenden mit Buttons
#1
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.)


Angehängte Dateien
.xlsx   alpha3_auszug.xlsx (Größe: 53,27 KB / Downloads: 13)
Antworten Top
#2
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste