Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Monitoring eines Zellbereichs mit .OnAction

Forumthread: Monitoring eines Zellbereichs mit .OnAction

Monitoring eines Zellbereichs mit .OnAction
08.10.2014 08:33:25
Tobi
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 Sub
Geht das irgendwie einfacher oder simpler zu bedienen?
Dass das mit rowup, rowdown überflüssig ist, weiß ich ;)
Danke schon mal für eure Mühe

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
oT, sieh mal ...
08.10.2014 10:53:19
neopa
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
.. , - ...

Anzeige
Keine Absicht
08.10.2014 11:00:00
Tobi
Also ich habe das nicht absichtlich doppelt gepostet...
Kann auch jemand zu meiner Frage beitragen?
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige