Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Copy/paste based on adjacent cell contents

XL2K

The layout of data is in the following format, with the number of
entries against each item in Col A dynamic. Data will always commence
at A12. Col A entries will always be 3 alpha and Col B will always be
in date format. Each series of entries against an entry in Col A will
end with blank cells in Cols A & B, followed by a line of text in Col
B, followed by 2 blanks cells in A & B.

Taking the example, I wish to copy A12 down Col A (subject to there
being a corresponding entry in Col B), then stop when a blank cell in
Col B is found (eg B16). Then go to each entry in Col B (eg CLC, CLF
etc. etc) and invoke the same copy/paste criteria until all entries in
Col B have been accounted for.

Naturally if there is only 1 entry against data in Col A (eg Row 20),
no action is required.


A B
12 CLB 23/4/2003
13 30/4/2003
14 30/4/2003
15 2/5/2003
16
17 Sub Total Text
18
19
20 CLC 22/4/2003
25
26 SubTotal Text
27
28
29 CLF 28/4/2003
30 28/4/2003
31 29/4/2003
32
33 SubTotal Text
34
35
36 CLG
37
38


Any assistance with code to achieve the task would be greatly
appreciated.

Cheers

Bob
Maitland Australia

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default Copy/paste based on adjacent cell contents

Sorry,

Some typos in the 2nd paragraph.

It should read:

Taking the example, I wish to copy A12 down Col A (subject to there
being a corresponding entry in Col B), then stop when a blank cell in
Col B is found (eg B16). Then go to each entry in Col A (eg CLC, CLF
etc. etc) and invoke the same copy/paste criteria until all entries in
Col A have been accounted for.


Cheers

Bob
Maitland Australia


On Fri, 08 Aug 2003 17:11:08 +1000, Ozbobeee
wrote:

XL2K

The layout of data is in the following format, with the number of
entries against each item in Col A dynamic. Data will always commence
at A12. Col A entries will always be 3 alpha and Col B will always be
in date format. Each series of entries against an entry in Col A will
end with blank cells in Cols A & B, followed by a line of text in Col
B, followed by 2 blanks cells in A & B.

Taking the example, I wish to copy A12 down Col A (subject to there
being a corresponding entry in Col B), then stop when a blank cell in
Col B is found (eg B16). Then go to each entry in Col B (eg CLC, CLF
etc. etc) and invoke the same copy/paste criteria until all entries in
Col B have been accounted for.

Naturally if there is only 1 entry against data in Col A (eg Row 20),
no action is required.


A B
12 CLB 23/4/2003
13 30/4/2003
14 30/4/2003
15 2/5/2003
16
17 Sub Total Text
18
19
20 CLC 22/4/2003
25
26 SubTotal Text
27
28
29 CLF 28/4/2003
30 28/4/2003
31 29/4/2003
32
33 SubTotal Text
34
35
36 CLG
37
38


Any assistance with code to achieve the task would be greatly
appreciated.

Cheers

Bob
Maitland Australia


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,824
Default Copy/paste based on adjacent cell contents

If this were a one-time-shot, I don't think I'd use a macro.

Select your range in column A (A12:A38)
Then Edit|goto|Special|click Blanks
then type = (equal sign)
hit up arrow key
hit ctrl-enter.

The blank cells are filled with a formula that point at the cell above. Now
convert that range to values (edit|copy, edit|paste special|values).

Apply Data|Filter|autofilter to column B.
Filter on blanks.
select the cells in column A (within your range (a12:A38))
hit the delete key.

Now filter using "contains" "subtotal" or whatever is unique in that cell.
select the cells in column A again
and hit the delete key.

Remove the filter.

Debra Dalgleish has nicer instructions for this kind of thing at:
http://www.contextures.com/xlDataEntry02.html

But as a macro, I'd just loop through the rows:

Option Explicit
Sub testme01()

Dim FirstRow As Long
Dim LastRow As Long
Dim iRow As Long
Dim wks As Worksheet

Set wks = ActiveSheet

With wks
FirstRow = 12
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row

For iRow = FirstRow + 1 To LastRow 'first row is already ok!
If IsEmpty(.Cells(iRow, "A")) Then
If IsDate(.Cells(iRow, "B").Value) Then
.Cells(iRow, "A").Value = .Cells(iRow - 1, "A").Value
End If
End If
Next iRow
End With

End Sub

If you're new to macros, you may want to read David McRitchie's intro at:
http://www.mvps.org/dmcritchie/excel/getstarted.htm


Ozbobeee wrote:

Sorry,

Some typos in the 2nd paragraph.

It should read:

Taking the example, I wish to copy A12 down Col A (subject to there
being a corresponding entry in Col B), then stop when a blank cell in
Col B is found (eg B16). Then go to each entry in Col A (eg CLC, CLF
etc. etc) and invoke the same copy/paste criteria until all entries in
Col A have been accounted for.

Cheers

Bob
Maitland Australia

On Fri, 08 Aug 2003 17:11:08 +1000, Ozbobeee
wrote:

XL2K

The layout of data is in the following format, with the number of
entries against each item in Col A dynamic. Data will always commence
at A12. Col A entries will always be 3 alpha and Col B will always be
in date format. Each series of entries against an entry in Col A will
end with blank cells in Cols A & B, followed by a line of text in Col
B, followed by 2 blanks cells in A & B.

Taking the example, I wish to copy A12 down Col A (subject to there
being a corresponding entry in Col B), then stop when a blank cell in
Col B is found (eg B16). Then go to each entry in Col B (eg CLC, CLF
etc. etc) and invoke the same copy/paste criteria until all entries in
Col B have been accounted for.

Naturally if there is only 1 entry against data in Col A (eg Row 20),
no action is required.


A B
12 CLB 23/4/2003
13 30/4/2003
14 30/4/2003
15 2/5/2003
16
17 Sub Total Text
18
19
20 CLC 22/4/2003
25
26 SubTotal Text
27
28
29 CLF 28/4/2003
30 28/4/2003
31 29/4/2003
32
33 SubTotal Text
34
35
36 CLG
37
38


Any assistance with code to achieve the task would be greatly
appreciated.

Cheers

Bob
Maitland Australia


--

Dave Peterson

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11
Default Copy/paste based on adjacent cell contents

Thanks Dave,

No this is not a one-off, but will be run on numerous occasions.

The sample I provided may have given the wrong impression. In reality,
the number of entries to check will vary and could go into the
thousands, so your macro is just what the doctor ordered.

Again, thanks for your reply.

Cheers

Bob
Maitland Australia



On Fri, 08 Aug 2003 21:03:02 -0500, Dave Peterson
wrote:

If this were a one-time-shot, I don't think I'd use a macro.

Select your range in column A (A12:A38)
Then Edit|goto|Special|click Blanks
then type = (equal sign)
hit up arrow key
hit ctrl-enter.

The blank cells are filled with a formula that point at the cell above. Now
convert that range to values (edit|copy, edit|paste special|values).

Apply Data|Filter|autofilter to column B.
Filter on blanks.
select the cells in column A (within your range (a12:A38))
hit the delete key.

Now filter using "contains" "subtotal" or whatever is unique in that cell.
select the cells in column A again
and hit the delete key.

Remove the filter.

Debra Dalgleish has nicer instructions for this kind of thing at:
http://www.contextures.com/xlDataEntry02.html

But as a macro, I'd just loop through the rows:

Option Explicit
Sub testme01()

Dim FirstRow As Long
Dim LastRow As Long
Dim iRow As Long
Dim wks As Worksheet

Set wks = ActiveSheet

With wks
FirstRow = 12
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row

For iRow = FirstRow + 1 To LastRow 'first row is already ok!
If IsEmpty(.Cells(iRow, "A")) Then
If IsDate(.Cells(iRow, "B").Value) Then
.Cells(iRow, "A").Value = .Cells(iRow - 1, "A").Value
End If
End If
Next iRow
End With

End Sub

If you're new to macros, you may want to read David McRitchie's intro at:
http://www.mvps.org/dmcritchie/excel/getstarted.htm


Ozbobeee wrote:

Sorry,

Some typos in the 2nd paragraph.

It should read:

Taking the example, I wish to copy A12 down Col A (subject to there
being a corresponding entry in Col B), then stop when a blank cell in
Col B is found (eg B16). Then go to each entry in Col A (eg CLC, CLF
etc. etc) and invoke the same copy/paste criteria until all entries in
Col A have been accounted for.

Cheers

Bob
Maitland Australia

On Fri, 08 Aug 2003 17:11:08 +1000, Ozbobeee
wrote:

XL2K

The layout of data is in the following format, with the number of
entries against each item in Col A dynamic. Data will always commence
at A12. Col A entries will always be 3 alpha and Col B will always be
in date format. Each series of entries against an entry in Col A will
end with blank cells in Cols A & B, followed by a line of text in Col
B, followed by 2 blanks cells in A & B.

Taking the example, I wish to copy A12 down Col A (subject to there
being a corresponding entry in Col B), then stop when a blank cell in
Col B is found (eg B16). Then go to each entry in Col B (eg CLC, CLF
etc. etc) and invoke the same copy/paste criteria until all entries in
Col B have been accounted for.

Naturally if there is only 1 entry against data in Col A (eg Row 20),
no action is required.


A B
12 CLB 23/4/2003
13 30/4/2003
14 30/4/2003
15 2/5/2003
16
17 Sub Total Text
18
19
20 CLC 22/4/2003
25
26 SubTotal Text
27
28
29 CLF 28/4/2003
30 28/4/2003
31 29/4/2003
32
33 SubTotal Text
34
35
36 CLG
37
38


Any assistance with code to achieve the task would be greatly
appreciated.

Cheers

Bob
Maitland Australia


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
Paste values for entire row based on cell contents Janelle S[_2_] Excel Discussion (Misc queries) 8 May 31st 09 05:10 AM
sum cells based on contents of adjacent cell (validated list)? Casi12 Excel Worksheet Functions 3 April 29th 08 02:31 PM
How do I copy the contents of a range of text cells and paste into one cell? davfin Excel Discussion (Misc queries) 7 July 4th 06 08:16 AM
copy paste delete cell contents Garry Excel Discussion (Misc queries) 0 March 27th 06 08:26 PM
Cut and paste or Copy just cell contents? Tom Meacham Excel Discussion (Misc queries) 1 January 11th 06 06:58 PM


All times are GMT +1. The time now is 07:04 PM.

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

About Us

"It's about Microsoft Excel"