Copy to an existing wb or create new wb if it does not based on ce

W

winnie123

Hi

If I had a customer name in Cell D5, which has been selected from a
validation list is it possible to

1. check a summary sheet to see if the file already exists and if so add
data to the next available row. The summary sheet would have the customer
name in A4 downwards, B4 downwords would be the hyperlink to the file.


2. use that customer name to create a new file, would need to copy header
row as well as data. Then update the summarry sheet to include the new
Customer name and file path.

At the moment I have a macro from RDB which copies all unique vales into new
workbooks and creates this summary page with the hyperlinks.
As more records gets added it may mean that the macro is creating 300 files
which will take time. So I am looking at just adding the new reord to the
existing file or create new.

Any help and advise would be appreciated as always.

Thankyou
Winnie
 
W

winnie123

Thanks Joel,

I will have a play tonight after work to see if I can get it to work.

Winnie
 
W

winnie123

I have tried but failed.

I have ended up with this but I can not seem to get it right, can you shed
any light on what I am doing wrong please.

With Worksheets("CurrentRecord")
Customer = Range("F2")
With Worksheets("CustomerLogSheet").Columns("A")
Set C = Columns("A").Find(what:=Customer, _
LookIn:=xlValues, lookat:=xlWhole)
myFile = C.Offset(0, 1).Value

If C Is Nothing Then
Application.Run "Copy_To_Workbooks4"

Else

Set DestWB = Workbooks.Open(myFile)
Sheets(1).Unprotect Password:="mypsswrd"

End If
 
P

Per Jessen

Hi Winnie

Looking at your code I see you don't set a reference to the With
statement. Look at this and notice the leading dot in the statement
"Set C=...". You also miss End With statements.

Customer = Worksheets("CurrentRecord").Range("F2").Value
With Worksheets("CustomerLogSheet").Columns("A")
Set C = .Columns("A").Find(what:=Customer, _
LookIn:=xlValues, lookat:=xlWhole)
myFile = C.Offset(0, 1).Value
End With

If C Is Nothing Then
Application.Run "Copy_To_Workbooks4"
Else
Set DestWB = Workbooks.Open(myFile)
Sheets(1).Unprotect Password:="mypsswrd"
End If

Regards,
Per
 
W

winnie123

Thanks Per,

I had to change the posistion of one line myFile = C.Offset(0, 1).Value
and ended up with.

Only done a couple tests but all is Good.

Thanks for your help

Customer = Worksheets("CurrentRecord").Range("F2").Value
With Worksheets("CustomerLogSheet").Columns("A")
Set C = .Columns("A").Find(what:=Customer, _
LookIn:=xlValues, lookat:=xlWhole)

End With

If C Is Nothing Then
Application.Run "Copy_To_Workbooks4"
Else
myFile = C.Offset(0, 1).Value
Set DestWB = Workbooks.Open(myFile)
Sheets(1).Unprotect Password:="mypsswrd"

Thankyou
Winnie
 

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