![]() |
Betrifft: Wenn Zellen inhalt, dann Rahmen dynamisch
von: Peter
Geschrieben am: 24.09.2014 13:01:30
Hallo Zusammen
Ich suche einen Code, der wenn im Bereich A3-C1000000 ein Wert eingegeben wird (Zahl/Text), dann automatisch in dem Bereich der jeweiligen Zeile (A3-J1000000) in dem ein Wert eingegeben wurde, der Rahmen gezeichnet wird. Das Ganze dynamisch, d.h. wenn der Zellenwert geändert wird, den Rahmen zeichnen, z.B.:
In Zelle A305 (oder B305, oder C305) wird ein Wert eingegeben, dann werden die Rahmen der Zellen des Bereichs A305-J305 gezeichnet.
Ich glaube, die Prozedur muss im entsprechenden Tabellenblatt hinterlegt werden und irgend was mit "(ByVal Target As Range)" sein. Es muss erkannt werden, wenn eine Zelle den Wert ändert oder irgend so was.
Ich habe folgenden Code aus dem Internet kopiert, der funktioniert jedoch nicht dynamisch.
Option Explicit
Option Private Module
Sub Rahmen() Dim rngBereich As Range, rngText As Range, rngZelle As Range Set rngBereich = Intersect(ActiveSheet.UsedRange, Range("A:J")) rngBereich.Borders.LineStyle = xlNone Set rngText = Nothing On Error Resume Next Set rngText = rngBereich.SpecialCells(xlCellTypeConstants, xlTextValues) On Error GoTo 0 If rngText Is Nothing Then Exit Sub For Each rngZelle In rngText With rngZelle.Borders .LineStyle = xlContinuous .ColorIndex = 15 .Weight = xlThin End With Next End SubMerci
![]() ![]() |
Betrifft: AW: Wenn Zellen inhalt, dann Rahmen dynamisch
von: fcs
Geschrieben am: 24.09.2014 14:27:26
Hallo Peter,
probier dein Glück mal mit dem folgenden Ereignis-makro.
Gruß
Franz
'Ereignis-Makro unter dem Tabellenblatt mit den Eingaben Private Sub Worksheet_Change(ByVal Target As Range) Dim rngBereich As Range, rngZeile As Range On Error Resume Next Set rngBereich = Intersect(Target, Range("A:C")) If Not rngBereich Is Nothing Then 'Spalten A bis J in geänderten Zeilen formatieren For Each rngZeile In rngBereich.Rows With Range(Cells(rngZeile.Row, 1), Cells(rngZeile.Row, 10)) If Application.WorksheetFunction.CountA(rngZeile) > 0 Then 'eine der Zellen A, B oder C in der geänderten Zeile enthält einen Wert With .Borders .LineStyle = xlContinuous .ColorIndex = 15 .Weight = xlThin End With Else 'keine der Zellen A, B und C in der geänderten Zeile enthält einen Wert .Borders.LineStyle = xlNone .ColorIndex = xlColorIndexNone End If End With Next End If End Sub
![]() ![]() |
Betrifft: AW: Wenn Zellen inhalt, dann Rahmen dynamisch
von: Peter
Geschrieben am: 30.09.2014 10:08:09
Hallo Franz
Funktioniert sehr gut, Danke
Gruss,
Peter
![]() |