Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
I have a Micro that makes borders for certain range.
I would like to make this code better, because if you add extra row or delete a row this micro will not do its job right. The borders will always start at B31, but it can end anywhere. In B30 there always will be the word "Area" and after the last cell to do borders it will always be the word "Comments/Issues:". so can it be done with a "if" statement if the see those words or is there an other better way? This is the code. Sub FixBorders() ActiveSheet.Unprotect Password:="eli" Range("B31:O98").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With ActiveSheet .Protect Password:="eli" .EnableSelection = xlUnlockedCells End With End Sub Thank you. |
#2
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi,
Why not range name the last cell Last - select it and choose Insert, Name, Define and enter Last in the Names in Workbook box and then click OK. In your code replace Range("B31:O98").Select with Range("B31", [Last]).Select -- If this helps, please click the Yes button. Cheers, Shane Devenshire "Damian" wrote: I have a Micro that makes borders for certain range. I would like to make this code better, because if you add extra row or delete a row this micro will not do its job right. The borders will always start at B31, but it can end anywhere. In B30 there always will be the word "Area" and after the last cell to do borders it will always be the word "Comments/Issues:". so can it be done with a "if" statement if the see those words or is there an other better way? This is the code. Sub FixBorders() ActiveSheet.Unprotect Password:="eli" Range("B31:O98").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With ActiveSheet .Protect Password:="eli" .EnableSelection = xlUnlockedCells End With End Sub Thank you. |
#3
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Here are some additional changes you might consider:
Sub FixBorders() With Range("B31", [Last]) With .Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium End With With .Borders(xlEdgeTop) .LineStyle = xlDouble .Weight = xlThick End With With .Borders(xlEdgeBottom) .LineStyle = xlDouble .Weight = xlThick End With With .Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium End With With .Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin End With With .Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline End With End With End Sub To use this you would protect the spreadsheet but turn on the Format Cells option in the protection dialog box. That way there is no need to hard code the password into the code. -- If this helps, please click the Yes button. Cheers, Shane Devenshire "Damian" wrote: I have a Micro that makes borders for certain range. I would like to make this code better, because if you add extra row or delete a row this micro will not do its job right. The borders will always start at B31, but it can end anywhere. In B30 there always will be the word "Area" and after the last cell to do borders it will always be the word "Comments/Issues:". so can it be done with a "if" statement if the see those words or is there an other better way? This is the code. Sub FixBorders() ActiveSheet.Unprotect Password:="eli" Range("B31:O98").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With ActiveSheet .Protect Password:="eli" .EnableSelection = xlUnlockedCells End With End Sub Thank you. |
#4
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Great, Thank You.
One more thing, Is there a way to have the the [Last] cell (B99:O99) BUT have the code to do its job 1 cell up in B98:O98? I tried to use the .End(xlDown) but did not work. Thanks "Shane Devenshire" wrote: Here are some additional changes you might consider: Sub FixBorders() With Range("B31", [Last]) With .Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium End With With .Borders(xlEdgeTop) .LineStyle = xlDouble .Weight = xlThick End With With .Borders(xlEdgeBottom) .LineStyle = xlDouble .Weight = xlThick End With With .Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium End With With .Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin End With With .Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline End With End With End Sub To use this you would protect the spreadsheet but turn on the Format Cells option in the protection dialog box. That way there is no need to hard code the password into the code. -- If this helps, please click the Yes button. Cheers, Shane Devenshire "Damian" wrote: I have a Micro that makes borders for certain range. I would like to make this code better, because if you add extra row or delete a row this micro will not do its job right. The borders will always start at B31, but it can end anywhere. In B30 there always will be the word "Area" and after the last cell to do borders it will always be the word "Comments/Issues:". so can it be done with a "if" statement if the see those words or is there an other better way? This is the code. Sub FixBorders() ActiveSheet.Unprotect Password:="eli" Range("B31:O98").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDouble .Weight = xlThick .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlHairline .ColorIndex = xlAutomatic End With With ActiveSheet .Protect Password:="eli" .EnableSelection = xlUnlockedCells End With End Sub Thank you. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Micro | Excel Worksheet Functions | |||
Question about borders | Excel Discussion (Misc queries) | |||
Question about Cell Borders | New Users to Excel | |||
Micro | Excel Worksheet Functions | |||
what does the micro do | New Users to Excel |