• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

BoarderAround in Rij en Kolom

  • Onderwerp starter Onderwerp starter Tegno
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Tegno

Gebruiker
Lid geworden
7 jul 2022
Berichten
58
Ik ben wat aan het stoeien met det volgende Code
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Cells.Borders.LineStyle = xlNone
 Cells(Target.Row, 2).Resize(, 10).BorderAround _
 ColorIndex:=3, Weight:=xlThick
End Sub
Deze Code werkt prima.
Als ik dit in de kolom hetzelfde wil laten doen loop ik vast
onderstaande code ben ik aan het door borduren op de eerste code echter geeft hij 2 lijnen in de rijen(willekeurig)
in plaats van 1 rij en 1 kolom.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Cells.Borders.LineStyle = xlNone
 Cells(Target.Row, 2).Resize(, 10).BorderAround _
 ColorIndex:=3, Weight:=xlThick
 Cells(Target.Column, 2).Resize(, 10).BorderAround _
 ColorIndex:=3, Weight:=xlThick
End Sub
 
Laat eens weten wat je precies wilt bereiken.
 
wat ik wil bereiken is dat hij vanuit de geselecteerde cel een deel in de rij omkaderd zoals in deze code
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Cells.Borders.LineStyle = xlNone
 Cells(Target.Row, 2).Resize(, 10).BorderAround _
 ColorIndex:=3, Weight:=xlThick 
End Sub
En dat hij dat ook in de kolom richting doet dus eigenlijk een kruis laat zien vanuit de geselecteerde cel.
 
Waarom dan zo'n groot gebied?
Bedoel je zoiets?
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Borders.LineStyle = xlNone
    If Target.Row = 1 Or Target.Column = 1 Then Exit Sub
    
    With Cells(Target.Row, Target.Column)
        .Offset(, 1).BorderAround ColorIndex:=3, Weight:=xlThick
        .Offset(, -1).BorderAround ColorIndex:=3, Weight:=xlThick
        .Offset(1).BorderAround ColorIndex:=3, Weight:=xlThick
        .Offset(-1).BorderAround ColorIndex:=3, Weight:=xlThick
    End With
End Sub
 
Laatst bewerkt:
edmoor

hier komt wel het kruis

Echter werk ik in een tabel waar ik de rij en de kolom binnen die tabel wil gebruiken als omkadering gebruiken.
b.v. mijn binnenwerk van het tabel is B3:K13 .
zit in in cel F5 dan wil ik dat de rij van B5:K5 en kolom F3:F13 omkaderd zijn.
zit ik in cel K10 dan wil ik dat de rij van B10:K10 en kolom K3:K13 omkaderd zijn.
enz.
 
Daarom is een voorbeeld dcoumentje zo handig.
 
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Borders.LineStyle = xlNone
    Range(Cells(3, 2), Cells(13, 11)).BorderAround ColorIndex:=1, Weight:=xlThick
    If Target.Row < 3 Or Target.Row > 13 Then Exit Sub
    If Target.Column < 2 Or Target.Column > 11 Then Exit Sub


    Range(Cells(Target.Row, 2), Cells(Target.Row, 11)).BorderAround ColorIndex:=3, Weight:=xlThick
    Range(Cells(3, Target.Column), Cells(13, Target.Column)).BorderAround ColorIndex:=3, Weight:=xlThick
End Sub
 
Laatst bewerkt:
deze doet het ook als je meerdere cellen selecteerd:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim G As Range
  Set G = Range(Cells(3, 2), Cells(13, 11))
  If Intersect(G, Target) Is Nothing Then Exit Sub
  G.Borders.LineStyle = xlNone
  G.BorderAround ColorIndex:=1, Weight:=xlThick
  Union(Intersect(Target.EntireColumn, G), Intersect(Target.EntireRow, G)).BorderAround ColorIndex:=3, Weight:=xlThick
End Sub
 
Ahulpje is de 1ste reset regel zo neer te zetten dat hij alleen de range B3:K13 reset
Cells.Borders.LineStyle = xlNone naar bv Cells.Range(B3:K13).Borders.LineStyle = xlNone
 
Ja, neem de oplossing van Sylvester, die is veel mooier!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan