Clever-Excel-Forum

Normale Version: Einrahmen von markierten Spalten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin zusammen,
ich hänge mal wieder fest.
In einem File werden zwei Spalten (immer andere) am Ende eines Prozesses markiert.
Jetzt möchte die Zellen der markierten Spalten rund herum einrahmen sowie Linienstärke und Farbe anpassen.

Zum Ausprobieren fand ich als Ausgangsbasis diesen Code:
Code:
Worksheets("Sheet1").Range("A1:D4").BorderAround _
ColorIndex:=3, Weight:=xlThick
Range ("A1:D4") geht ja nicht und so dachte ich an.
Range(ActiveCell.Column)

Egal was ich ausprobierte, es war immer der berühmte Satz mit X.

Wer würde mir hier weiterhelfen?

Gruß
Björn
Hallo Björn,

so sollte es funktionieren.
Code:
Sub test()
    With Worksheets("Sheet1").Range("A1:D4").Select
        With Selection.Borders(xlEdgeLeft)
            .ColorIndex = 3
            .Weight = xlThick
        End With
        With Selection.Borders(xlEdgeTop)
            .ColorIndex = 3
            .Weight = xlThick
        End With
        With Selection.Borders(xlEdgeBottom)
            .ColorIndex = 3
            .Weight = xlThick
        End With
        With Selection.Borders(xlEdgeRight)
            .ColorIndex = 3
            .Weight = xlThick
        End With
    End With
End Sub

Mit RGB, hast du jedoch mehr Farben zur Auswahl, als mit ColorIndex

Code:
Sub Test_RGB()
    With Worksheets("Sheet1").Range("A1:D4").Select
        With Selection.Borders(xlEdgeLeft)
            .Color = RGB(255, 0, 0)
            .Weight = xlThick
        End With
        With Selection.Borders(xlEdgeTop)
            .Color = RGB(255, 0, 0)
            .Weight = xlThick
        End With
        With Selection.Borders(xlEdgeBottom)
            .Color = RGB(255, 0, 0)
            .Weight = xlThick
        End With
        With Selection.Borders(xlEdgeRight)
            .Color = RGB(255, 0, 0)
            .Weight = xlThick
        End With
    End With
End Sub

RGB(Rot Wert, Grün Wert, Blau Wert)
Max Wert je Farbe = 255
Min Wert je Farbe = 0
Werte zwischen Min und Max = Misch Werte

Einfach einmal Testen.
Hallo Björn,

prüfe einmal mit Worksheets("Tabelle1"), oder Worksheets("Sheet1"), je nach deiner Tabellen-Version, in deutscher-, oder englischer- Schreibweise.
Es ist auch so möglich:
Code:
Sub Bei_deutschem_Excel_ColorIndex()
    Worksheets("Tabelle1").Range("A1:D4").BorderAround _
        ColorIndex:=3, Weight:=xlThick
End Sub
Code:
Sub Bei_deutschem_Excel_RGB()
    Worksheets("Tabelle1").Range("A1:D4").BorderAround _
        Color:=RGB(255, 0, 0), Weight:=xlThick
End Sub
Hallo Karl,
ich danke Dir für Deine Lösungen und werde diese testen.

Da die Zellen, die gerahmt werden, nicht bekannt sind, funktionieren Deine BorderAround Lösungen nicht.

Wie bereits beschrieben, am Ende eines Prozesses sind zwei Spalten markiert, die sich täglich ändern.
Also muss der Ansatz zum Rahmen (BorderAround) irgendwie mit den markierten Spalten in Zusammenhang gebracht werden.

Gruß
Björn
Moin!
Da ich immer noch nicht genau weiß, welche Rahmen Du haben willst:

Selection.BorderAround ,xlThick, 3

ergibt einen umgebenden Rahmen.
[attachment=42196]

With Selection.Borders
  .Weight = xlThick
  .ColorIndex = 3
End With

markiert alle Gitternetzlinien.
[attachment=42197]

Man sollte aber zur Sicherheit vorher prüfen, dass tatsächlich ein Bereich (und nicht etwa ein Shape oder ein Diagramm) selektiert ist mittels
If TypeName(Selection) = "Range" Then

Die Aufschlüsselung aller Indices der Border-Auflistung, wie sie der Makrorekorder aufzeichnet, ist flüssiger als Wasser.

Gruß Ralf