• 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.

Dynamische range bepalen, voor kaders VBA

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

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

ik zit met het probleem dat deze code niet in zijn geheel werkt.
Ik wil een range selecteren die dynamische is om lijnen aan te brengen.
De boven range weet ik D3:P maar omdat de cellen tussen D3 en P niet altijd gevuld zijn, wil ik eigenlijk dat er gekeken wordt naar kolom C.
Kolom c gevuld tot bv
500 dan automatisch range selecteren D3:P500
542 dan automatisch range selecteren D3:P542

Code:
Range("D3", Range("P" & Rows.Count).End(xlUp)).Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

Groet HWV
 
Beste HWV
als ik goed geknutselt heb zou dit moeten doen wat jij wil.


Code:
Sub testHWV()

[COLOR="darkred"]
     Range("C1", Selection.End(xlDown)).Select
       rw = Selection.Rows.Count
    Range("D3:P" & rw).Select
[/COLOR]

    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
        End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
 
Laatst bewerkt:
Code:
Range("D3:P" & Cells(Rows.Count, 3).End(xlUp).Row).Select
 
Beste,

Beide bedankt voor de code
@roeljongman
Code dacht goed te gaan maar ging nog 300 regels te ver,
@Rudi
Loopt goed en doet wat het moet doen.
Vult tot de laatst gevulde regel de belijning in.

Toch nog een aanvvullende vraag hier op , en weet niet of het mogeliijk is.

liefst zou ik willen laats gevulde cel -6 regels.

Waarom

Na de subtotalen die ik heb gemaakt, komen er eerst twee lege regels en dan cumulatief de maanden onder elkaar waar ik eigenlik geen kader om heen wil hebben.

Het is eigenlijk meer een schoeensheid ding maar zou fijn zijn als dit zou lukken

Groet HWV
 
@roeljongman
Code dacht goed te gaan maar ging nog 300 regels te ver,

Ben ook geen super expert (nog) op vba gebied :) en die automatische selecties lopen dus soms niet helemaal goed..
maar je vraag over de onderste 6 regels heb ik als volgt opgelost, geen idee of het efficienter kan maar het werkt wel :)

Code:
Range("D1:P" & Cells(Rows.Count - 6, 3).End(xlUp).Row).Select
        rw = Selection.Rows.Count
Range("D3:P" & rw - 6).Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 15
    End With
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
 
Laatst bewerkt:
Code:
Range("D3:P" & Cells(Rows.Count, 3).End(xlUp).[COLOR="blue"][B]Offset(-6).[/B][/COLOR]Row).Select

Groet, Leo
 
Antwoord op mijn vraag

Beste,

Dit was inderdaad het stukje wat ik nog nodig had.
Perfect.

Bedankt allemaal voor de hulp

groet HWV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan