Number and names of courses may change later

M

menken.john

I'm using Excel 2010 and I have three company course names that I must add to a spreadsheet and I must do this operation routinely. I want the operation to move to the right in the spreadsheet and find the first available andempty column and then enter the course name, move right, enter another course name, etc. Here is the code that I'm using and it does work.

Code:
'Enter the three Course names at the end of the spreadsheet
Selection.End(xlToRight).Select
Range("Q1").Select
ActiveCell.FormulaR1C1 = "Social Styles"
Range("R1").Select
ActiveCell.FormulaR1C1 = "Adaptive Leadership"
Range("S1").Select
ActiveCell.FormulaR1C1 = "Leading Virtually"
Range("Q1:S1").Select
Range("S1").Activate
Selection.Font.Bold = True
Cells.Columns.AutoFit

Here's the problem. Although this code works (thanks Macro recorder), it limits me to three courses with the names above. Next year it may be four, orfive courses and they will be different names. I'm thinking that what I need is the ability to set variables as the course names then loop through those variables inserting their names in the proper places. This would allow me in the future to change only the variable names and everything would fall into place. Am I thinking about this correctly? Can anyone give me an idea what the code may look like. I do understand variables and arrays but I can't seem to piece it all together in my mind. Many thanks.
 
C

Claus Busch

Hi John,

Am Sat, 10 Nov 2012 03:08:18 -0800 (PST) schrieb (e-mail address removed):
'Enter the three Course names at the end of the spreadsheet
Selection.End(xlToRight).Select
Range("Q1").Select
ActiveCell.FormulaR1C1 = "Social Styles"
Range("R1").Select
ActiveCell.FormulaR1C1 = "Adaptive Leadership"
Range("S1").Select
ActiveCell.FormulaR1C1 = "Leading Virtually"
Range("Q1:S1").Select
Range("S1").Activate
Selection.Font.Bold = True
Cells.Columns.AutoFit

try:

Sub Test()
Dim i As Integer
Dim FECol As Long
Dim NamesArr As Variant

NamesArr = Array("Social Styles", "Adaptive Leadership", _
"Leading Virtually")
FECol = Cells(1, Columns.Count).End(xlToLeft).Column + 1

For i = 0 To UBound(NamesArr)
Cells(1, FECol + i) = NamesArr(i)
Next
End Sub

Regards
Claus Busch
 
C

Claus Busch

Hi John,

I forgot font.bold and autofit:

Sub Test()
Dim i As Integer
Dim FECol As Long
Dim NamesArr As Variant

NamesArr = Array("Social Styles", "Adaptive Leadership", _
"Leading Virtually")
FECol = Cells(1, Columns.Count).End(xlToLeft).Column + 1

For i = 0 To UBound(NamesArr)
With Cells(1, FECol + i)
.Value = NamesArr(i)
.Font.Bold = True
.EntireColumn.AutoFit
End With
Next
End Sub


Regards
Claus Busch
 
M

menken.john

Your code worked flawlessly and helped me understand how to do it. Thank you very much.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top