Anzeige
Archiv - Navigation
1528to1532
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 mit Hilfe von VBA

Diagonale Rahmenlinien mit Hilfe von VBA
22.12.2016 08:23:13
Michael

Ich versuche mal, mein Problem zu schildern ...
In manchen Zellen meiner Excel-Tabelle kann "ja" oder "nein" stehen. Nun hätte ich gerne, dass - wenn zB in der Zelle C6 das Wort "ja" steht - die Zelle A6 diagonale Rahmenlinien bekommt [allgemein und anders formuliert: Die Zelle soll diagonal gestrichen werden, wenn die Zeile in der selben Zeile, aber zwei Spalten weiter das Wort "ja" enthält.]. Über eine bedingte Formatierung ist dies nicht machbar ... aber über VBA sollte es klappen.
Derzeit bin ich so weit ... bei der 'Adressierung' habe ich allerdings grobe Schwierigkeiten.
Ich hoffe, dass nicht mehr allzuviel fehlt. Kann mir bitte jemand weiterhelfen?
Danke schon mal ...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Offset(0, 2) = "ja" Then
With Target
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
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
End With
End If
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagonale Rahmenlinien mit Hilfe von VBA
22.12.2016 08:37:47
Hajo_Zi
ich vermute es soll bei der Eingabe von "ja"
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "ja" Then
With Target.Offset(0, 2)
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(0, 2)
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
End With
End If
End Sub

Anzeige
AW: Diagonale Rahmenlinien mit Hilfe von VBA
22.12.2016 08:51:10
Michael
Danke für die rasche Rückmeldung. Leider war ich in meiner Schilderung nicht präzise genug.
In der Spalte A stehen Wochentage, in der Spalte B kann ein "x" eingetragen werden. In der Spalte C steht in der Folge "ja", wenn es sich um einen Samstag handelt oder um einen Sonntag handelt oder in der Spalte B ein "x" eingetragen ist.
Und ich hätte nun gerne, dass ein "ja" bewirkt, dass die Wochentagszelle diagonal gestrichen wird.
AW: Diagonale Rahmenlinien mit Hilfe von VBA
22.12.2016 09:16:12
Hajo_Zi
nur wenige sehen Deine Datei. Man könnte vermuten bei ja steht eine Formel.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "x" Then
With Target.Offset(0, 1)
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(0, 1)
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
End With
End If
End Sub

Anzeige
AW: Diagonale Rahmenlinien mit Hilfe von VBA
22.12.2016 10:05:41
Michael
Vielen Dank nochmals für die rasche Rückmeldung und die Hilfe.
AW: Diagonale Rahmenlinien mit Hilfe von VBA
22.12.2016 08:47:33
Christian
hallo Michael,

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
With Target
If .Value = "ja" Then
With .Offset(0, -2).Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With .Offset(0, -2).Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
Else
.Offset(0, -2).Borders(xlDiagonalUp).LineStyle = xlNone
.Offset(0, -2).Borders(xlDiagonalDown).LineStyle = xlNone
End If
End With
End Sub
Gruß
Christian
Anzeige
AW: Diagonale Rahmenlinien mit Hilfe von VBA
22.12.2016 10:07:08
Michael
Vielen Dank nochmals für die rasche Rückmeldung und die Hilfe.
Folgendes reicht:
22.12.2016 09:22:54
RPP63
Moin!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&
If Target.Column <> 3 Then Exit Sub
With Target
   For i = 5 To 6
      If .Value = "ja" Then
         .Offset(0, -2).Borders(i).LineStyle = xlContinuous
      Else
         .Offset(0, -2).Borders(i).LineStyle = xlNone
      End If
   Next
End With
End Sub
Gruß Ralf
Anzeige
AW: Folgendes reicht:
22.12.2016 10:06:19
Michael
Vielen Dank nochmals für die rasche Rückmeldung und die Hilfe.
AW: Folgendes reicht:
22.12.2016 10:06:47
Michael
Vielen Dank nochmals für die rasche Rückmeldung und die Hilfe.

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige