Avatar billede gladhund Nybegynder
15. juni 2010 - 14:52 Der er 9 kommentarer og
1 løsning

VBA: Lave grå kanter på område

Kære eksperter,

Jeg indsætter nye rækker nederst på en liste med følgende kode:

If Range("b7").Value = "" Then
    Range("b7").Activate
Else
    Range("b7").CurrentRegion.Select
    ActiveCell.Offset(Selection.Rows.Count, 0).Activate
End If

With ActiveCell
    .Value = txtIFnr.Text
    .Offset(0, 1).Value = txtIFnavn.Text
    .Offset(0, 2).Value = txtIFbeskrivelse.Text
    .Offset(0, 3).Value = cmbMål.Text
    .Offset(0, 4).Value = txtDato.Text
    .Offset(0, 5).Value = cmbArbejdsgruppe.Text
    .Offset(0, 6).Value = cmbStatus.Value
    .Offset(0, 7).Value = txtProjektplan.Text
    .Offset(0, 8).Value = cmbIndsatsfelttype.Text
    .Offset(0, 9).Value = txtPdato.Text
End With

Jeg vil meget gerne have en grå kant rundt om cellerne i ovenstående område samtidig. Desværre kan jeg ikke finde ud af at vælge et range med offset... :(. Håber nogen vil hjælpe.

MVH

gladhund
Avatar billede newbieatphp Nybegynder
15. juni 2010 - 15:09 #1
.Offset(0, 1).Borders (xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThick
        .ColorIndex = 15
Avatar billede gladhund Nybegynder
15. juni 2010 - 15:12 #2
Tak for svaret! Hvor sætter jeg den kode ind henne og vil den så farvelægge kanten på den aktive celle og de ni celler til højre for den?
Avatar billede newbieatphp Nybegynder
15. juni 2010 - 15:14 #3
kigger lige lidt mere på det .. for jeg får selv en fejl når jeg prøver :)
Avatar billede gladhund Nybegynder
15. juni 2010 - 15:17 #4
haha :). Ja, det virker som om det kun er den første celle til højre du får valgt, og det ser også ud til at den kun får en kant på højresiden... Der skal vidst lidt mere til.
Avatar billede newbieatphp Nybegynder
15. juni 2010 - 15:21 #5
Ja, det er så det mindste problem, hvis den kode virkede :)

Men du vil gerne have den celle du står i, når den har udført:

With ActiveCell
    .Value = txtIFnr.Text
    .Offset(0, 1).Value = txtIFnavn.Text
    .Offset(0, 2).Value = txtIFbeskrivelse.Text
    .Offset(0, 3).Value = cmbMål.Text
    .Offset(0, 4).Value = txtDato.Text
    .Offset(0, 5).Value = cmbArbejdsgruppe.Text
    .Offset(0, 6).Value = cmbStatus.Value
    .Offset(0, 7).Value = txtProjektplan.Text
    .Offset(0, 8).Value = cmbIndsatsfelttype.Text
    .Offset(0, 9).Value = txtPdato.Text
End With

og de 9 celler til højre til at have en grå kant omkring hver celle ... eller en lang boks omkring de 10 celler?
Avatar billede gladhund Nybegynder
15. juni 2010 - 15:32 #6
En grå kant omkring hver celle. Sådan her (optaget makro):

Range("B20:K20").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = -0.149906918546098
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = -0.149906918546098
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = -0.149906918546098
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = -0.149906918546098
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ThemeColor = 1
        .TintAndShade = -0.149906918546098
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

Rækkenummeret, her 20, er jo så een højere hver gang, fordi der indsættes en linje under den sidste i currentregion. Men hvis der tages udgangspunkt i ActiveCell burde det ikke være et problem.
Avatar billede newbieatphp Nybegynder
15. juni 2010 - 15:37 #7
Så hvis du bare får tilpasset denne:

ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select

til at markere de rigtige celler, så kan du bruge den kode du har indspillet :)
Avatar billede newbieatphp Nybegynder
15. juni 2010 - 15:42 #8
Det skulle så være denne:

ActiveSheet.Range(ActiveCell(1, 1), ActiveCell(1, 10)).Select
Avatar billede gladhund Nybegynder
15. juni 2010 - 15:50 #9
Det virker bare :). Smukt - tak for den gode og hurtige hjælp! Smid et svar, så kvitterer jeg med velfortjente points.
Avatar billede newbieatphp Nybegynder
15. juni 2010 - 15:53 #10
Det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester