Fill Right Variable Number of Columns, then Calculate Using Of
RyGuy,
For the second part, use code like
Range("C15").Resize(1, Nbr).Formula = "=D10/E27"
Range("C16").Resize(1, Nbr).Formula = "=C15*K10"
What you really want is unclear, but consider these..
Range("C15").Resize(1, Nbr).Formula = "=D10/$E$27"
Range("C16").Resize(1, Nbr).Formula = "=C15*$K$10"
As to shifting down and right
Dim i As Integer
For i = 1 To Nbr - 1
Range("C16").Offset(i, i).Resize(1, Nbr - i).Formula = "=Formula that you want"
Next i
Not sure what formula you want....
HTH,
Bernie
MS Excel MVP
"ryguy7272" wrote in message
...
Whoa! Pretty Cool stuff Dave! I tried your version and it works great. In
the meantime I tried a few things and got this to work:
Sub BeginMonth()
Dim Mth As String
Dim Nbr As Long
Mth = InputBox("Please enter a beginning month.")
Range("C14").Select
ActiveCell = Mth
Nbr = InputBox("Please enter total number of months.")
Range("Z1").Select
ActiveCell = Nbr
Range("C14").Select
Selection.AutoFill Destination:=Range _
(Selection, Selection.Resize(1, Nbr))
End Sub
Any suggestions as to what to do for the second part?
--
RyGuy
"Dave Peterson" wrote:
Maybe something like:
Option Explicit
Sub BeginMonth()
Dim Mth As String
Dim Nbr As Long
Do
Mth = InputBox(prompt:="Please enter a beginning month.", _
Default:=Format(Date, "mmmm"))
If Mth = "" Then
MsgBox "Quitting!"
Exit Sub
End If
If IsDate(Mth & " 1, 2007") Then
'whew, it's ok
Exit Do
Else
MsgBox "Please enter a month"
End If
Loop
ActiveSheet.Range("C14").Value = Mth
Nbr = CLng(Application.InputBox _
(prompt:="Please enter total number of months.", Type:=1))
If Nbr < 2 Then
MsgBox "Quitting!"
Exit Sub
End If
With ActiveSheet
.Range("C14").AutoFill Destination:=.Range("C14").Resize(1, Nbr)
End With
End Sub
Application.inputbox with type:=1 requires that the user enter a number. It
makes validating the input easier.
ryguy7272 wrote:
I am stuck on (what is probably) a simple macro. I am trying to prompt a
user to enter a month into C14 and then enter a number (let?Ts say 12 but it
varies) into another InputBox and then spread the months over that range.
This is what I have so far:
Sub BeginMonth()
Dim Mth As String
Dim Nbr As Long
Mth = InputBox("Please enter a beginning month.")
Range("C14").Select
ActiveCell = Mth
Nbr = InputBox("Please enter total number of months.")
Selection.AutoFill Destination:=Range("C14:D14"), Type:=xlFillDefault
Range("C14:D14").Select
ActiveCell.Offset(0, Nbr).Activate
With ActiveSheet
.Range("C14").AutoFill Destination:=.Range("C14" & Nbr)
End With
End Sub
It fails on AutoFill line.
Also, I?Td like to do a simple calculation in cell C15, such as =(D10/E27).
Then, I?Td like to fill right as many columns as the user enters (as mentioned
above, perhaps 12, but it will vary). Finally, in C16, I?Td like to do
another simple calculation, such as =(C15*K10), and again fill right and then
shift right one column (Offset 0,1) and down one row, then right one column
and down two rows, and right one column and down 3 rows, etc., until it
reaches the final column (12 or whatever the user enters).
I?Tm sure it can be done and I?Tm taking a crack at it now. If anyone has any
suggestions, please share. If I finish it off before I hear back from anyone
I?Tll post the solution here.
Regards,
Ryan--
--
RyGuy
--
Dave Peterson
|