ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   open file and update data? (https://www.excelbanter.com/excel-programming/433861-open-file-update-data.html)

John

open file and update data?
 
I have to worksheets that have the same layout in two different files... I
want to open one to load the data into the current workbook... I get errors
on twbk = thisworkbook

Sub loadTickerFile()
Dim twbk As Workbook
twbk = ThisWorkbook
If Worksheets("Long Term Ticket").Range("D2").Value = "" Then
MsgBox "Please enter ticker in Range D2 and re-run macro."
GoTo ender:
End If
User = Environ("UserProfile")
file = User & "\" & "My Documents\Trade Tickets\Long Term Ticket " &
Worksheets("Long Term Ticket").Range("D2").Value
Workbooks.Open file
Dim wbk As Workbook
wbk = ActiveWorkbook
twbk.Sheets("Long Term Ticket").Range("e4:e14") = wbk.Sheets("Long Term
Ticket").Range("e4:e14")

twbk.Sheets("Long Term Ticket").Range("D20:D22") = wbk.Sheets("Long Term
Ticket").Range("D20:D22")

twbk.Sheets("Long Term Ticket").Range("D28:D37") = wbk.Sheets("Long Term
Ticket").Range("D28:D37")

twbk.Sheets("Long Term Ticket").Range("D40:D50") = wbk.Sheets("Long Term
Ticket").Range("D40:D50")
twbk.Sheets("Long Term Ticket").Range("h4:h50") = wbk.Sheets("Long Term
Ticket").Range("h4:h50")
wbk.Close savechanges:=False

ender:
Range("A2").Select
End Sub

Jacob Skaria

open file and update data?
 
Set wbk = ActiveWorkbook


If this post helps click Yes
---------------
Jacob Skaria


"John" wrote:

I have to worksheets that have the same layout in two different files... I
want to open one to load the data into the current workbook... I get errors
on twbk = thisworkbook

Sub loadTickerFile()
Dim twbk As Workbook
twbk = ThisWorkbook
If Worksheets("Long Term Ticket").Range("D2").Value = "" Then
MsgBox "Please enter ticker in Range D2 and re-run macro."
GoTo ender:
End If
User = Environ("UserProfile")
file = User & "\" & "My Documents\Trade Tickets\Long Term Ticket " &
Worksheets("Long Term Ticket").Range("D2").Value
Workbooks.Open file
Dim wbk As Workbook
wbk = ActiveWorkbook
twbk.Sheets("Long Term Ticket").Range("e4:e14") = wbk.Sheets("Long Term
Ticket").Range("e4:e14")

twbk.Sheets("Long Term Ticket").Range("D20:D22") = wbk.Sheets("Long Term
Ticket").Range("D20:D22")

twbk.Sheets("Long Term Ticket").Range("D28:D37") = wbk.Sheets("Long Term
Ticket").Range("D28:D37")

twbk.Sheets("Long Term Ticket").Range("D40:D50") = wbk.Sheets("Long Term
Ticket").Range("D40:D50")
twbk.Sheets("Long Term Ticket").Range("h4:h50") = wbk.Sheets("Long Term
Ticket").Range("h4:h50")
wbk.Close savechanges:=False

ender:
Range("A2").Select
End Sub


Jacob Skaria

open file and update data?
 
John, just to add on it would be helpful if you review the help on Set
Statement. The Dim, Private, Public, ReDim, and Static statements only
declare a variable that refers to an object. No actual object is referred to
until you use the Set statement to assign a specific object.

If this post helps click Yes
---------------
Jacob Skaria


"Jacob Skaria" wrote:

Set wbk = ActiveWorkbook


If this post helps click Yes
---------------
Jacob Skaria


"John" wrote:

I have to worksheets that have the same layout in two different files... I
want to open one to load the data into the current workbook... I get errors
on twbk = thisworkbook

Sub loadTickerFile()
Dim twbk As Workbook
twbk = ThisWorkbook
If Worksheets("Long Term Ticket").Range("D2").Value = "" Then
MsgBox "Please enter ticker in Range D2 and re-run macro."
GoTo ender:
End If
User = Environ("UserProfile")
file = User & "\" & "My Documents\Trade Tickets\Long Term Ticket " &
Worksheets("Long Term Ticket").Range("D2").Value
Workbooks.Open file
Dim wbk As Workbook
wbk = ActiveWorkbook
twbk.Sheets("Long Term Ticket").Range("e4:e14") = wbk.Sheets("Long Term
Ticket").Range("e4:e14")

twbk.Sheets("Long Term Ticket").Range("D20:D22") = wbk.Sheets("Long Term
Ticket").Range("D20:D22")

twbk.Sheets("Long Term Ticket").Range("D28:D37") = wbk.Sheets("Long Term
Ticket").Range("D28:D37")

twbk.Sheets("Long Term Ticket").Range("D40:D50") = wbk.Sheets("Long Term
Ticket").Range("D40:D50")
twbk.Sheets("Long Term Ticket").Range("h4:h50") = wbk.Sheets("Long Term
Ticket").Range("h4:h50")
wbk.Close savechanges:=False

ender:
Range("A2").Select
End Sub


Jacob Skaria

open file and update data?
 
Hi John

Have revised your code using worksheet and workbook object. Try and feedback

Sub loadTickerFile()

Dim ws1 As Worksheet, ws2 As Worksheet, wbk As Workbook
Dim strTicker As String, strFile As String, strProfile As String

Set ws1 = ThisWorkbook.Worksheets("Long Term Ticket")
strTicker = Trim(ws1.Range("D2"))

If strTicker = "" Then _
MsgBox "Please enter ticker in Range D2 and re-run macro.": Exit Sub

strProfile = Environ("UserProfile")
strFile = strProfile & "\" & _
"My Documents\Trade Tickets\Long Term Ticket " & strTicker

Set wbk = Workbooks.Open(strFile)
Set ws2 = wbk.Worksheets("Long Term Ticket")

ws1.Range("e4:e14") = ws2.Range("e4:e14").Value
ws1.Range("D20:D22") = ws2.Range("D20:D22").Value
ws1.Range("D28:D37") = ws2.Range("D28:D37").Value
ws1.Range("D40:D50") = ws2.Range("D40:D50").Value
ws1.Range("h4:h50") = ws2.Range("h4:h50").Value

Application.DisplayAlerts = False
wbk.Close Savechanges:=False
Application.DisplayAlerts = True
End Sub


If this post helps click Yes
---------------
Jacob Skaria


"John" wrote:

I have to worksheets that have the same layout in two different files... I
want to open one to load the data into the current workbook... I get errors
on twbk = thisworkbook

Sub loadTickerFile()
Dim twbk As Workbook
twbk = ThisWorkbook
If Worksheets("Long Term Ticket").Range("D2").Value = "" Then
MsgBox "Please enter ticker in Range D2 and re-run macro."
GoTo ender:
End If
User = Environ("UserProfile")
file = User & "\" & "My Documents\Trade Tickets\Long Term Ticket " &
Worksheets("Long Term Ticket").Range("D2").Value
Workbooks.Open file
Dim wbk As Workbook
wbk = ActiveWorkbook
twbk.Sheets("Long Term Ticket").Range("e4:e14") = wbk.Sheets("Long Term
Ticket").Range("e4:e14")

twbk.Sheets("Long Term Ticket").Range("D20:D22") = wbk.Sheets("Long Term
Ticket").Range("D20:D22")

twbk.Sheets("Long Term Ticket").Range("D28:D37") = wbk.Sheets("Long Term
Ticket").Range("D28:D37")

twbk.Sheets("Long Term Ticket").Range("D40:D50") = wbk.Sheets("Long Term
Ticket").Range("D40:D50")
twbk.Sheets("Long Term Ticket").Range("h4:h50") = wbk.Sheets("Long Term
Ticket").Range("h4:h50")
wbk.Close savechanges:=False

ender:
Range("A2").Select
End Sub



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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com