Microsoft Excel

Herbers Excel/VBA-Archiv

.Borders.Weight = 0 | Herbers Excel-Forum


Betrifft: .Borders.Weight = 0 von: Gunter
Geschrieben am: 18.11.2009 15:40:06

Hallo Zusammen,

ich möchte je nach Zelleninhalt einen Rahmen Ein- bzw. Ausschalten. Mit .Borders.Weight = 0 bringt er mir leider eine Fehlermeldung. Wie müsste es denn heissen?
Für zweckdienliche Hinweise herzlichen Dank.

Gruss
Gunter

  

Betrifft: mit xlNone von: Matthias L
Geschrieben am: 18.11.2009 16:01:15

Hallo

Vorschlag:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
   If Not IsEmpty(Target) Then
    Target.Borders.Weight = 1
   Else
    With Target
    .Borders(xlDiagonalDown).LineStyle = xlNone
    .Borders(xlDiagonalUp).LineStyle = xlNone
    .Borders(xlEdgeLeft).LineStyle = xlNone
    .Borders(xlEdgeTop).LineStyle = xlNone
    .Borders(xlEdgeBottom).LineStyle = xlNone
    .Borders(xlEdgeRight).LineStyle = xlNone
    .Borders(xlInsideVertical).LineStyle = xlNone
    .Borders(xlInsideHorizontal).LineStyle = xlNone
    End With
   End If
End If
End Sub
Geht sicher noch einfacher (habs mit Recorder aufgezeichnet und angepasst)

Gruß Matthias


  

Betrifft: AW: .Borders.Weight = 0 von: fcs
Geschrieben am: 18.11.2009 16:10:40

Hallo Günther,

zum Ein-/Ausbenden des Rahmens muss du den LineStyle ändern, nicht die Dicke der Linien

Gruß
Franz

Beispiel:

Sub aaTest()
Dim A
  A = xlHairline ' 1
  A = xlThin '2
  A = xlMedium '-4138
  A = xlThick '4
  With Range("AN6").Borders
      .LineStyle = -4142 'xlLineStyleNone
      .LineStyle = 1 'xlContinuous
      .Weight = 4
      .Weight = 1
      .LineStyle = -4142 'xlLineStyleNone
  End With
 
End Sub



  

Betrifft: AW: .Borders.Weight = 0 von: Gunter
Geschrieben am: 18.11.2009 16:41:51

Hallo Matthias und Franz,

vielen Dank für die schnelle Hilfe. Mit Linestyle funktioniert es super.

Danke und Gruss
Gunter