![]() |
Betrifft: Monitoring eines Zellbereichs mit .OnAction
von: Tobi Winzer
Geschrieben am: 08.10.2014 08:33:25
Servus,
ich möchte einen variablen Zellbereich ( Größe je nach Benutzereingabe ) überwachen lassen.
Und zwar gibt es eine ComboBox in der nur zwei Werte zur Auswahl stehen und in die verlinkte Zelle wird je nach Auswahl eine "1" oder eine "2" geschrieben.
Zusätzlich sollen alle Zellen die z.b. eine 1 haben, den gleichen Wert annehmen, den ich eingebe.
Hier mein Code, der zwar erstmal funktioniert, aber eben sehr umständlich arbeitet, da man vor der Auswahl des Zustandes immer schon den Wert eingeben muss, der dann für alle Zellen mit dem gleichen Zustand übernommen werden soll:
Sub Änderung_switch2() With ActiveSheet.Shapes(Application.Caller) Row = Range(.ControlFormat.LinkedCell).Row Column = Range(.ControlFormat.LinkedCell).Column Select Case Sengctr Case 1 rowup = 0 rowdown = 0 Case 2 rowup = 1 rowdown = 1 Case 3 rowup = 2 rowdown = 2 Case 4 rowup = 3 rowdown = 3 Case 5 rowup = 4 rowdown = 4 Case 6 rowup = 5 rowdown = 5 End Select If Range(.ControlFormat.LinkedCell).value = 2 Then Range("K" & Row).Formula = "=get_SFOCpartload(F" & Row & ")" Range("F" & Row).Interior.Color = RGB(255, 185, 15) Range("K" & Row).Interior.Color = RGB(255, 185, 15) For i = 1 To rowdown If Range("E" & Row - i).value = "" Then Exit Sub If Range("E" & Row - i).value = 2 Then zeile = Range("E" & Row - i).Row Range("F" & zeile).Formula = "=F" & Row & "" End If Next For i = 1 To rowup If Range("E" & Row + i).Borders(xlEdgeBottom).Weight = xlThick Then Exit Sub If Range("E" & Row + i) = 2 Then zeile = Range("E" & Row + i).Row Range("F" & zeile).Formula = "=F" & Row & "" End If Next End If If Range(.ControlFormat.LinkedCell).value = 1 Then Range("K" & Row).Formula = "=get_SFOCstandard(F" & Row & ")" Range("F" & Row).Interior.Color = vbWhite Range("K" & Row).Interior.Color = vbWhite For i = 1 To rowdown If Range("E" & Row - i).value = "" Then Exit Sub If Range("E" & Row - i).value = 1 Then zeile = Range("E" & Row - i).Row Range("F" & zeile).Formula = "=F" & Row & "" End If Next For i = 1 To rowup If Range("E" & Row + i).Borders(xlEdgeBottom).Weight = xlThick Then Exit Sub If Range("E" & Row + i).value = 1 Then zeile = Range("E" & Row + i).Row Range("F" & zeile).Formula = "=F" & Row & "" End If Next End If End With End SubGeht das irgendwie einfacher oder simpler zu bedienen?
![]() ![]() |
Betrifft: Doppelt
von: Hajo_Zi
Geschrieben am: 08.10.2014 10:05:32
https://www.herber.de/forum/messages/1385475.html
![]() ![]() |
Betrifft: oT, sieh mal ...
von: neopa C (paneo)
Geschrieben am: 08.10.2014 10:53:19
Hallo Hajo,
... dazu hier: https://www.herber.de/forum/messages/1385470.html.
Daniels Antwort dort, könnte eine Erklärung sein, warum der Beitrag doppelt ist.
Gruß Werner
.. , - ...
![]() ![]() |
Betrifft: Keine Absicht
von: Tobi Winzer
Geschrieben am: 08.10.2014 11:00:00
Also ich habe das nicht absichtlich doppelt gepostet...
Kann auch jemand zu meiner Frage beitragen?
![]() |