Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1636to1640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagonale Rahmenlinien bei Wert

Diagonale Rahmenlinien bei Wert
07.08.2018 02:54:53
Benjamin
Hallo liebes Forum,
für einen Abrechnungsbogen wird pro Mitarbeiter eine Zeile automatisch über Anpassung der Daten aus einem Import geschrieben.
Hat ein Mitarbeiter nicht gearbeitet, müssen die daher freien Zellen auf dem Bogen durch Durchstreichen entwertet werden.
Wenn ein Mitarbeiter gearbeitet hat, erscheinen seine Stunden in der Spalte K.
K29 = Stunden Mitarbeiter 1, K30 = Stunden Mitarbeiter 2 usw...
Änderung der Formatierung bei Aktivierung der Mappe wäre auch kein Problem, da je nach Import nicht alle Stunden-Zellen geschrieben werden.
Über mehrere Tage hinweg habe ich recherchiert und getestet, aber bin nicht weiter als bis zu diesem Ergebnis gekommen:
Private Sub Worksheet_Change(ByVal Target As Range)
Target = Range("K29:K35")
If Target.Value = 0 Then
With Target.Offset(RowOffset:=0, ColumnOffset:=-6)
With .Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
End With
Else
With Target.Offset(RowOffset:=0, ColumnOffset:=-6)
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
End With
End If
End Sub
Vielen Dank bereits im Vorfeld :-)

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

Betreff
Datum
Anwender
Anzeige
AW: Diagonale Rahmenlinien bei Wert
07.08.2018 09:12:35
Robert
Hallo Benjamin,
verstehe ich Deinen Code richtig? Wenn im Bereich K29:K35 eine 0 eingetragen wird, soll die entsprechende Zelle im Bereich E29:E35 durchgestrichen formatiert werden. Dann passt Dein Code eigentlich schon, bis auf die erste Zeile.
Streiche die Zeile Target = Range("K29:K35") und füge den Rest in eine weitere If-Schleife ein:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("K29:K35")) Is Nothing Then
If Target.Value = 0 Then
End If
End Sub
Dann müsste es funktionieren. Mit der eingefügten If-Schleife wird geprüft, ob die geänderte Zelle (=Target) im Bereich K29:K35 liegt.
Gruß
Robert
Anzeige
AW: Diagonale Rahmenlinien bei Wert
07.08.2018 23:07:05
Benjamin
Vielen lieben Dank für die Antwort :-)
Und vor allem vielen Dank dafür, dass du meinen Code direkt richtig verstanden hast.
Es funktioniert, nur habe ich jetzt das Problem, dass der Wert aus der Berechnung einer Formel stammt und daher Worksheet_Change(ByVal Target As Range) nicht automatisch funktioniert...
Meine Versuche mit Worksheet_Activate()
sind bislang gescheitert. :-(
AW: Diagonale Rahmenlinien bei Wert
08.08.2018 08:16:29
hary
Moin Benjamin
Dann geht:
Private Sub Worksheet_Calculate()
Dim zelle As Range
For Each zelle In Range("K29:K35")
If zelle.Text = 0 Then
'--deine Anweisung und statt Target nimmst du zelle
End If
Next
End Sub

Startet bei jeder Formelberechnung, egal wo.
gruss hary
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige