ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Format even cells to the right. (https://www.excelbanter.com/excel-programming/435212-format-even-cells-right.html)

Sal

Format even cells to the right.
 
Sub Formattoright()

Range("A2,A4,A6,A8,A10,A12,A14,A16,A18,A20,A22,A24 ,A26,A28,A30,A32,A34,A36,A38,A40,A42,A44,A46,A48,A 50,A52,A54,A56,A58,A60,A62,A64,A66,A68,A70,A72,A74 ,A76,A78,A80").Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

This macro selects all even cells in column A and formats them so the
contents move to the right side of the cell. Is there a way to speed this up
so that the macro does not have to select each even cell individually?


Peter T

Format even cells to the right.
 
Sub OddLeftEvenRight()
Dim i As Long, s As String
Dim last As Long

last = 10000 ' << change to suit

Range("A1:A" & last).HorizontalAlignment = xlLeft
Range("A1:A" & last).Value = "L" ' for testing

For i = 2 To last Step 2
s = s & "A" & i
If Len(s) 230 Then ' keep well under 255
Range(s).HorizontalAlignment = xlRight
Range(s).Value = "R" ' for testing
s = ""
ElseIf i < last Then
s = s & ","
End If
Next

If Len(s) Then
Range(s).HorizontalAlignment = xlRight
Range(s) = "R" ' for testing
End If

End Sub

Regards,
Peter T


"Sal" wrote in message
...
Sub Formattoright()

Range("A2,A4,A6,A8,A10,A12,A14,A16,A18,A20,A22,A24 ,A26,A28,A30,A32,A34,A36,A38,A40,A42,A44,A46,A48,A 50,A52,A54,A56,A58,A60,A62,A64,A66,A68,A70,A72,A74 ,A76,A78,A80").Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

This macro selects all even cells in column A and formats them so the
contents move to the right side of the cell. Is there a way to speed this
up
so that the macro does not have to select each even cell individually?




Peter T

Format even cells to the right.
 
to cater for possibility of 'last' being an odd number need to change

ElseIf i < last Then

to
ElseIf i < last - 1 Then

Peter T


"Peter T" <peter_t@discussions wrote in message
...
Sub OddLeftEvenRight()
Dim i As Long, s As String
Dim last As Long

last = 10000 ' << change to suit

Range("A1:A" & last).HorizontalAlignment = xlLeft
Range("A1:A" & last).Value = "L" ' for testing

For i = 2 To last Step 2
s = s & "A" & i
If Len(s) 230 Then ' keep well under 255
Range(s).HorizontalAlignment = xlRight
Range(s).Value = "R" ' for testing
s = ""
ElseIf i < last Then
s = s & ","
End If
Next

If Len(s) Then
Range(s).HorizontalAlignment = xlRight
Range(s) = "R" ' for testing
End If

End Sub

Regards,
Peter T


"Sal" wrote in message
...
Sub Formattoright()

Range("A2,A4,A6,A8,A10,A12,A14,A16,A18,A20,A22,A24 ,A26,A28,A30,A32,A34,A36,A38,A40,A42,A44,A46,A48,A 50,A52,A54,A56,A58,A60,A62,A64,A66,A68,A70,A72,A74 ,A76,A78,A80").Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

This macro selects all even cells in column A and formats them so the
contents move to the right side of the cell. Is there a way to speed
this up
so that the macro does not have to select each even cell individually?






Gleam

Format even cells to the right.
 
By not selecting the cells it should speed up. Also if all you want to do is
right format the data, some of
the steps can be commented out (or deleted):

Sub Formattoright()
for i1=2 to 80 step 2
With cells(i1,1)
.HorizontalAlignment = xlRight
' .VerticalAlignment = xlBottom
' .WrapText = False
' .Orientation = 0
' .AddIndent = False
' .IndentLevel = 0
' .ShrinkToFit = False
' .ReadingOrder = xlContext
' .MergeCells = False
End With
next i1
End Sub



"Sal" wrote:

Sub Formattoright()

Range("A2,A4,A6,A8,A10,A12,A14,A16,A18,A20,A22,A24 ,A26,A28,A30,A32,A34,A36,A38,A40,A42,A44,A46,A48,A 50,A52,A54,A56,A58,A60,A62,A64,A66,A68,A70,A72,A74 ,A76,A78,A80").Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

This macro selects all even cells in column A and formats them so the
contents move to the right side of the cell. Is there a way to speed this up
so that the macro does not have to select each even cell individually?


Dave Peterson

Format even cells to the right.
 
You could drop the Selection completely:

with range("a2,...,A80)
.horizontalalignment = ...
...

But if you meant so that you didn't have to type out the addresses in your
code...

Option Explicit
Sub testme01()

Dim myRng As Range
Dim iRow As Long

With ActiveSheet
Set myRng = .Range("A2")
For iRow = 4 To 80 Step 2
Set myRng = Union(myRng, .Cells(iRow, "A"))
Next iRow
End With

With myRng
.HorizontalAlignment = xlRight
....rest of that code
End With
End Sub

Sal wrote:

Sub Formattoright()

Range("A2,A4,A6,A8,A10,A12,A14,A16,A18,A20,A22,A24 ,A26,A28,A30,A32,A34,A36,A38,A40,A42,A44,A46,A48,A 50,A52,A54,A56,A58,A60,A62,A64,A66,A68,A70,A72,A74 ,A76,A78,A80").Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

This macro selects all even cells in column A and formats them so the
contents move to the right side of the cell. Is there a way to speed this up
so that the macro does not have to select each even cell individually?


--

Dave Peterson


All times are GMT +1. The time now is 03:35 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com