Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 39
Default Autofil macro

Hi Guys,

I need some assistance with a macro. I need the macro to grab some formulas
from a static range of cells (B2 - G2) and paste that formula in a static
range (B4 - G4) and then I need it to autofill to the last empty row (the end
of this range is always changing or else I would use a static end range).
For example, today I might need it to fill all the way to B36 - G36 and
tomorrow I might need it to fill to B77 - G77. The end of the range is
determined by the column immediately preceeding the formulas. In my example
above A36 or A77.

A B C D E F G H
1 x formulas............
2 x fill formulas........
3 x fill formulas........
4
5
6 x end formula fill....
7
8
9
The copy and paste section of the macro is working fine, it's the autofil to
an always changing end row that I'm having trouble with. Hope this makes
sense.

This is what I have been using...maybe I'm not even close...

lRow = Range("AG4").End(xlDown).Row
Range("AH4").AutoFill Destination:=Range("AH4:AM" & lRow)

Thanks as always for your help!!
Kelley
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 39
Default Autofil macro

Hello Don,

Thanks for your help. Just to confirm are you suggesting I swap out my
original line lRow = Range("AG4").End(xlDown).Row with what you have below...
lRow = cells(rows.count,"AG4").End(xlUP).Row. I tried that and am getting
the error: application-defined or object-defined error.

Or am I misunderstanding you?

"Don Guillett" wrote:


spaces??
maybe
'lRow = Range("AG4").End(xlDown).Row
lRow = cells(rows.count,"AG4").End(xlUP).Row

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Kell2604" wrote in message
...
Hi Guys,

I need some assistance with a macro. I need the macro to grab some
formulas
from a static range of cells (B2 - G2) and paste that formula in a static
range (B4 - G4) and then I need it to autofill to the last empty row (the
end
of this range is always changing or else I would use a static end range).
For example, today I might need it to fill all the way to B36 - G36 and
tomorrow I might need it to fill to B77 - G77. The end of the range is
determined by the column immediately preceeding the formulas. In my
example
above A36 or A77.

A B C D E F G H
1 x formulas............
2 x fill formulas........
3 x fill formulas........
4
5
6 x end formula fill....
7
8
9
The copy and paste section of the macro is working fine, it's the autofil
to
an always changing end row that I'm having trouble with. Hope this makes
sense.

This is what I have been using...maybe I'm not even close...

lRow = Range("AG4").End(xlDown).Row
Range("AH4").AutoFill Destination:=Range("AH4:AM" & lRow)

Thanks as always for your help!!
Kelley



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,124
Default Autofil macro

Oops
lRow = cells(rows.count,"AG4").End(xlUP).Row

should be
lRow = cells(rows.count,"AG").End(xlUP).Row
It would only make a difference if your data had blanks in column AG

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Kell2604" wrote in message
...
Hello Don,

Thanks for your help. Just to confirm are you suggesting I swap out my
original line lRow = Range("AG4").End(xlDown).Row with what you have
below...
lRow = cells(rows.count,"AG4").End(xlUP).Row. I tried that and am getting
the error: application-defined or object-defined error.

Or am I misunderstanding you?

"Don Guillett" wrote:


spaces??
maybe
'lRow = Range("AG4").End(xlDown).Row
lRow = cells(rows.count,"AG4").End(xlUP).Row

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Kell2604" wrote in message
...
Hi Guys,

I need some assistance with a macro. I need the macro to grab some
formulas
from a static range of cells (B2 - G2) and paste that formula in a
static
range (B4 - G4) and then I need it to autofill to the last empty row
(the
end
of this range is always changing or else I would use a static end
range).
For example, today I might need it to fill all the way to B36 - G36 and
tomorrow I might need it to fill to B77 - G77. The end of the range is
determined by the column immediately preceeding the formulas. In my
example
above A36 or A77.

A B C D E F G H
1 x formulas............
2 x fill formulas........
3 x fill formulas........
4
5
6 x end formula fill....
7
8
9
The copy and paste section of the macro is working fine, it's the
autofil
to
an always changing end row that I'm having trouble with. Hope this
makes
sense.

This is what I have been using...maybe I'm not even close...

lRow = Range("AG4").End(xlDown).Row
Range("AH4").AutoFill Destination:=Range("AH4:AM" & lRow)

Thanks as always for your help!!
Kelley




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 153
Default Autofil macro

Don, what is the difference between finding the last row as you are doing
here, and doing it like this?

LstRow = [A65000].End(xlUp).Row

Is one method better than the other in certain situations? And if so, why?
Just trying to understand. Thanks

Greg

"Don Guillett" wrote:


spaces??
maybe
'lRow = Range("AG4").End(xlDown).Row
lRow = cells(rows.count,"AG4").End(xlUP).Row

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Kell2604" wrote in message
...
Hi Guys,

I need some assistance with a macro. I need the macro to grab some
formulas
from a static range of cells (B2 - G2) and paste that formula in a static
range (B4 - G4) and then I need it to autofill to the last empty row (the
end
of this range is always changing or else I would use a static end range).
For example, today I might need it to fill all the way to B36 - G36 and
tomorrow I might need it to fill to B77 - G77. The end of the range is
determined by the column immediately preceeding the formulas. In my
example
above A36 or A77.

A B C D E F G H
1 x formulas............
2 x fill formulas........
3 x fill formulas........
4
5
6 x end formula fill....
7
8
9
The copy and paste section of the macro is working fine, it's the autofil
to
an always changing end row that I'm having trouble with. Hope this makes
sense.

This is what I have been using...maybe I'm not even close...

lRow = Range("AG4").End(xlDown).Row
Range("AH4").AutoFill Destination:=Range("AH4:AM" & lRow)

Thanks as always for your help!!
Kelley





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,124
Default Autofil macro

Should have been
lRow = cells(rows.count,"AG").End(xlUP).Row

Yours only uses 65000 rows which isn't accurate if using xl2007

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Greg Snidow" wrote in message
...
Don, what is the difference between finding the last row as you are doing
here, and doing it like this?

LstRow = [A65000].End(xlUp).Row

Is one method better than the other in certain situations? And if so,
why?
Just trying to understand. Thanks

Greg

"Don Guillett" wrote:


spaces??
maybe
'lRow = Range("AG4").End(xlDown).Row
lRow = cells(rows.count,"AG4").End(xlUP).Row

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Kell2604" wrote in message
...
Hi Guys,

I need some assistance with a macro. I need the macro to grab some
formulas
from a static range of cells (B2 - G2) and paste that formula in a
static
range (B4 - G4) and then I need it to autofill to the last empty row
(the
end
of this range is always changing or else I would use a static end
range).
For example, today I might need it to fill all the way to B36 - G36 and
tomorrow I might need it to fill to B77 - G77. The end of the range is
determined by the column immediately preceeding the formulas. In my
example
above A36 or A77.

A B C D E F G H
1 x formulas............
2 x fill formulas........
3 x fill formulas........
4
5
6 x end formula fill....
7
8
9
The copy and paste section of the macro is working fine, it's the
autofil
to
an always changing end row that I'm having trouble with. Hope this
makes
sense.

This is what I have been using...maybe I'm not even close...

lRow = Range("AG4").End(xlDown).Row
Range("AH4").AutoFill Destination:=Range("AH4:AM" & lRow)

Thanks as always for your help!!
Kelley




  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 153
Default Autofil macro

Don, what is the difference between finding the last row as you are doing
here, lRow = cells(rows.count,"AG4").End(xlUP).Row, and as I usually do, like
this:
LstRow = [F65000].End(xlUp).Row? I see this method all the time, so it is
what I use in all my macros. Are there situations where your method would be
better? And if so, why? Just trying to understand. Thank you.

Greg

"Don Guillett" wrote:


spaces??
maybe
'lRow = Range("AG4").End(xlDown).Row
lRow = cells(rows.count,"AG4").End(xlUP).Row

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Kell2604" wrote in message
...
Hi Guys,

I need some assistance with a macro. I need the macro to grab some
formulas
from a static range of cells (B2 - G2) and paste that formula in a static
range (B4 - G4) and then I need it to autofill to the last empty row (the
end
of this range is always changing or else I would use a static end range).
For example, today I might need it to fill all the way to B36 - G36 and
tomorrow I might need it to fill to B77 - G77. The end of the range is
determined by the column immediately preceeding the formulas. In my
example
above A36 or A77.

A B C D E F G H
1 x formulas............
2 x fill formulas........
3 x fill formulas........
4
5
6 x end formula fill....
7
8
9
The copy and paste section of the macro is working fine, it's the autofil
to
an always changing end row that I'm having trouble with. Hope this makes
sense.

This is what I have been using...maybe I'm not even close...

lRow = Range("AG4").End(xlDown).Row
Range("AH4").AutoFill Destination:=Range("AH4:AM" & lRow)

Thanks as always for your help!!
Kelley



  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,624
Default Autofil macro

For one thing, 65000 is not the last row in a worksheet, even prior to
XL07, so if there were 65535 rows of data, your method would fail while
the first method would work.

Obviously, XL07/08 files have LOTS more than 65000 rows. The first
method will work on either file type.

Second, using the evaluate method as you're doing *can* be slightly more
inefficient than using Cells(). Won't make a jot of difference when run
once, but most people feel it's better coding practice.

Third, it's a lot easier to generalize the Cells() method. Instead of a
constant, the "AG4" part could be calculated, or specified in a
constant, making it much easier to change one calculation (or constant)
and have all Cells() methods adjust, rather than having to search the
project for each instance of "AG".

In article ,
Greg Snidow wrote:

Don, what is the difference between finding the last row as you are doing
here, lRow = cells(rows.count,"AG4").End(xlUP).Row, and as I usually do, like
this:
LstRow = [F65000].End(xlUp).Row? I see this method all the time, so it is
what I use in all my macros. Are there situations where your method would be
better? And if so, why? Just trying to understand. Thank you.

  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 39
Default Autofil macro

Guys...I'm still getting an error.

This formula works great if I'm just trying to autofil 1 column. I seem to
be having trouble with autofilling 5 consecutive columns. I could do it one
by one with my original code but that seems like a lot of unnecessary work.

This is what I have currently...with the updates suggested.
lRow = Cells(Rows.Count, "AG").End(xlUp).Row
Range("AG4").AutoFill Destination:=Range("AG4:AM" & lRow)

New error - AutoFill method of Range class failed.




"JE McGimpsey" wrote:

For one thing, 65000 is not the last row in a worksheet, even prior to
XL07, so if there were 65535 rows of data, your method would fail while
the first method would work.

Obviously, XL07/08 files have LOTS more than 65000 rows. The first
method will work on either file type.

Second, using the evaluate method as you're doing *can* be slightly more
inefficient than using Cells(). Won't make a jot of difference when run
once, but most people feel it's better coding practice.

Third, it's a lot easier to generalize the Cells() method. Instead of a
constant, the "AG4" part could be calculated, or specified in a
constant, making it much easier to change one calculation (or constant)
and have all Cells() methods adjust, rather than having to search the
project for each instance of "AG".

In article ,
Greg Snidow wrote:

Don, what is the difference between finding the last row as you are doing
here, lRow = cells(rows.count,"AG4").End(xlUP).Row, and as I usually do, like
this:
LstRow = [F65000].End(xlUp).Row? I see this method all the time, so it is
what I use in all my macros. Are there situations where your method would be
better? And if so, why? Just trying to understand. Thank you.


  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 22,906
Default Autofil macro

Maybe?

Sub Auto_Fill()
Dim Lrow As Long
With ActiveSheet
Lrow = .Range("AG" & Rows.Count).End(xlUp).Row
.Range("AG4:AM" & Lrow).FillDown
End With
End Sub


Gord Dibben MS Excel MVP

On Tue, 23 Dec 2008 09:30:04 -0800, Kell2604
wrote:

Guys...I'm still getting an error.

This formula works great if I'm just trying to autofil 1 column. I seem to
be having trouble with autofilling 5 consecutive columns. I could do it one
by one with my original code but that seems like a lot of unnecessary work.

This is what I have currently...with the updates suggested.
lRow = Cells(Rows.Count, "AG").End(xlUp).Row
Range("AG4").AutoFill Destination:=Range("AG4:AM" & lRow)

New error - AutoFill method of Range class failed.




"JE McGimpsey" wrote:

For one thing, 65000 is not the last row in a worksheet, even prior to
XL07, so if there were 65535 rows of data, your method would fail while
the first method would work.

Obviously, XL07/08 files have LOTS more than 65000 rows. The first
method will work on either file type.

Second, using the evaluate method as you're doing *can* be slightly more
inefficient than using Cells(). Won't make a jot of difference when run
once, but most people feel it's better coding practice.

Third, it's a lot easier to generalize the Cells() method. Instead of a
constant, the "AG4" part could be calculated, or specified in a
constant, making it much easier to change one calculation (or constant)
and have all Cells() methods adjust, rather than having to search the
project for each instance of "AG".

In article ,
Greg Snidow wrote:

Don, what is the difference between finding the last row as you are doing
here, lRow = cells(rows.count,"AG4").End(xlUP).Row, and as I usually do, like
this:
LstRow = [F65000].End(xlUp).Row? I see this method all the time, so it is
what I use in all my macros. Are there situations where your method would be
better? And if so, why? Just trying to understand. Thank you.





  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 153
Default Autofil macro

JE, thanks for the tips. I did realize about the number of rows, so I should
have stated that one was known. Anyhow, I have learned something new, so
thank you.

Greg

"JE McGimpsey" wrote:

For one thing, 65000 is not the last row in a worksheet, even prior to
XL07, so if there were 65535 rows of data, your method would fail while
the first method would work.

Obviously, XL07/08 files have LOTS more than 65000 rows. The first
method will work on either file type.

Second, using the evaluate method as you're doing *can* be slightly more
inefficient than using Cells(). Won't make a jot of difference when run
once, but most people feel it's better coding practice.

Third, it's a lot easier to generalize the Cells() method. Instead of a
constant, the "AG4" part could be calculated, or specified in a
constant, making it much easier to change one calculation (or constant)
and have all Cells() methods adjust, rather than having to search the
project for each instance of "AG".

In article ,
Greg Snidow wrote:

Don, what is the difference between finding the last row as you are doing
here, lRow = cells(rows.count,"AG4").End(xlUP).Row, and as I usually do, like
this:
LstRow = [F65000].End(xlUp).Row? I see this method all the time, so it is
what I use in all my macros. Are there situations where your method would be
better? And if so, why? Just trying to understand. Thank you.


  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 153
Default Autofil macro

Sorry for the double posting. The first time I hit 'Post' I got some strange
error message, then my window closed.

"Greg Snidow" wrote:

Don, what is the difference between finding the last row as you are doing
here, lRow = cells(rows.count,"AG4").End(xlUP).Row, and as I usually do, like
this:
LstRow = [F65000].End(xlUp).Row? I see this method all the time, so it is
what I use in all my macros. Are there situations where your method would be
better? And if so, why? Just trying to understand. Thank you.

Greg

"Don Guillett" wrote:


spaces??
maybe
'lRow = Range("AG4").End(xlDown).Row
lRow = cells(rows.count,"AG4").End(xlUP).Row

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Kell2604" wrote in message
...
Hi Guys,

I need some assistance with a macro. I need the macro to grab some
formulas
from a static range of cells (B2 - G2) and paste that formula in a static
range (B4 - G4) and then I need it to autofill to the last empty row (the
end
of this range is always changing or else I would use a static end range).
For example, today I might need it to fill all the way to B36 - G36 and
tomorrow I might need it to fill to B77 - G77. The end of the range is
determined by the column immediately preceeding the formulas. In my
example
above A36 or A77.

A B C D E F G H
1 x formulas............
2 x fill formulas........
3 x fill formulas........
4
5
6 x end formula fill....
7
8
9
The copy and paste section of the macro is working fine, it's the autofil
to
an always changing end row that I'm having trouble with. Hope this makes
sense.

This is what I have been using...maybe I'm not even close...

lRow = Range("AG4").End(xlDown).Row
Range("AH4").AutoFill Destination:=Range("AH4:AM" & lRow)

Thanks as always for your help!!
Kelley



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need to autofil a formula that is not recognised? edroberts77 Excel Discussion (Misc queries) 4 August 8th 08 09:35 PM
simple question on formulas and autofil R1CHO Excel Worksheet Functions 1 April 1st 08 01:23 AM
Autofil from a list box (data validation) Kevin Excel Programming 0 October 7th 07 11:55 AM
Autofil a cell in the same row. Mac5 Excel Worksheet Functions 3 October 1st 05 12:34 AM
Excel VBA question - Running a autofil Vliegveld Excel Programming 20 August 20th 04 07:50 PM


All times are GMT +1. The time now is 10:36 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"