View Single Post
  #14   Report Post  
Posted to microsoft.public.excel.programming
JLGWhiz JLGWhiz is offline
external usenet poster
 
Posts: 3,986
Default find first empty cell in range and copy information from anoth

That would take a different kind of code to search for part of the total data
field instead of an exact match. It could probably be done with the Find
method, but I have not tried a lot of that type coding. I think I have done
it before, but it was some time ago before I retired. I sort of stick with
the simple stuff nowadays.

" wrote:

Hi JLG,

this last code works great! Thank you so much for your help. One
question: how would I make this work if there was a sentence
containing the word "Day1" in that cell so that I could extract the
whole sentence to the other workbook.

Thank you again! You have been of great help.


On Jan 28, 2:01 pm, JLGWhiz wrote:
See if this version is more suitable to your needs:

Sub EmpRwCpy()
Set aRng = Workbooks(1).Worksheets(1).Range("$A$7:$A$10")
counter = 10
For Each c In aRng
If c = "" Then
xRng = c.Address
If Workbooks(2).Sheets(1).Range("$G" & counter) = "Day1" Then
Workbooks(2).Sheets(1).Range("$G" & counter).Copy
Range("$A$7").Activate
If ActiveCell = "" Then
ActiveSheet.Paste
Else
Do Until ActiveCell = "" Or counter = 14
ActiveCell.Offset(1, 0).Activate
Loop
ActiveSheet.Paste
End If
End If
counter = counter + 1
End If
Next
End Sub



" wrote:

Hi JLG,


The code is running this time without errors. But its not exactly the
same thing it is suppossed to. It doesnt copy the information to the
topmost empty table. Nevertheless the thing works without any
errors...


eg. if this is how the data is on wb2:


G10 Day1
G11 Day2
G12 Day2
G13 Day1


it gets copied on wb1 as:


A7 Day1
A8 (empty)
A9 (empty)
A10 Day1


On Jan 28, 9:07 am, JLGWhiz wrote:
This eliminates the activation steps
between the workbooks. See if it runs
without throwing an error. Once again,
you will need to change the Workbooks(1)
and (2) and sheet number references to
meet your workbook name requirements.
Both workbooks must be open and the
first one opened will be Workbooks(1)
since the sytem assigns the index as the
files are opened.


Sub EmpRwCpy()
Set aRng = Workbooks(1).Worksheets(1) _
.Range("$A$7:$A$10")
counter = 10
For Each c In aRng
If c = "" Then
xRng = c.Address
If Workbooks(2).Sheets(1) _
.Range("$G" & counter) = "Day1" Then
Workbooks(2).Sheets(1) _
.Range("$G" & counter).Copy Workbooks(1).Sheets(1).Range(xRng)
End If
counter = counter + 1
End If
Next
End Sub


" wrote:
Hi JLGWhiz,


for line:
Range("$G" & counter).Activate


It gives an error saying " Runtime 1004 : Activate method of Range
class failed"


Thank you for your help again.


On Jan 27, 7:42 pm, JLGWhiz wrote:
Try this:


Sub RwEmptCpy()
Set aRng = Workbooks(1).Worksheets(1).Range("$A$7:$A$10")
counter = 10
For Each c In aRng
If c = "" Then
xRng = c.Address
Workbooks(2).Sheets(1).Activate
Range("$G" & counter).Activate
If ActiveCell = "Day1" Then
ActiveCell.Copy Workbooks(1).Sheets(1).Range(xRng)
End If
counter = counter + 1
Workbooks(1).Activate
End If
Next
End Sub


It assumes that you are using Sheet 1 in both workbooks. If not you will
need to change the sheet references.


" wrote:
SORRY ABOUT THE ERROR, PLEASE SEE THIS QUESTION:


I am looking for a formula function or a vba code whe


- In workbook1 find the first cell that is empty between range A7 -
A10,
- In workbook2, in Range G10- G13: find the word "Day1".
- If the word "Day1" exists in cells G10 or G11 or G12 or G13, copy
the particular cell or cells where "Day1" exists to the first found
empty cell or cells in range A7-A10 in workbook1.


Lets suppose cells A8, A9, A10(workbook1) are empty cells, that means
A8 is the first empty cell.
And G10,G11,G12, G13 (workbook2) have the word "Day1"
Then,
Copy cell G10 into cell A8
Copy cell G11 into cell A9
Copy cell G12 into cell A10


Please let me know if this explanation is confusing.... and I can try
explaining again.


Appreciate all help!


On Jan 27, 6:34 pm, wrote:
I am looking for a formula function or a vba code whe


- In workbook1 find the first cell that is empty between range A7 -
A10,
- In workbook2, in Range G10- G13: find the word "Day1".
- If the word "Day1" exists in cells G10 or G11 or G12 or G13, copy
the particular cell or cells where "Day1" exists to the first found
empty cell or cells in range A7-A10 in workbook1.


Lets suppose cells A8, A9, A10(workbook1) are empty cells, that means
A8 is the first empty cell.
And G10,G11,G12, G13 (workbook2) have the word "Day1"
Then,
Copy cell G10 into cell A8
Copy cell G13 into cell A9
Copy cell G14 into cell A10


Please let me know if this explanation is confusing.... and I can try
explaining again.


Appreciate all help!- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -- Hide quoted text -- Show quoted text -