Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 59
Default DAO Syntax Problem

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:


Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default DAO Syntax Problem

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub


--

Dave Peterson
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 59
Default DAO Syntax Problem

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub


--

Dave Peterson

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default DAO Syntax Problem

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub


--

Dave Peterson


--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 59
Default DAO Syntax Problem

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:


Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub


Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default DAO Syntax Problem

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 59
Default DAO Syntax Problem

ok it works just the same as my code but the thing is I want it to copy the
last updated range, not necessarily A3111 to H3111, the workbook gets updated
everyday, so whatever was entered last I it to copy it, not just from A3111
to H3111 only, is there anyway to do that?

"Dave Peterson" wrote:

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default DAO Syntax Problem

Maybe...

If you only make one entry (last used row), you could use that.

If you make multiple entries, maybe you could add an indicator column that says
this should be copied or left alone.

drinese18 wrote:

ok it works just the same as my code but the thing is I want it to copy the
last updated range, not necessarily A3111 to H3111, the workbook gets updated
everyday, so whatever was entered last I it to copy it, not just from A3111
to H3111 only, is there anyway to do that?

"Dave Peterson" wrote:

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson
  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 59
Default DAO Syntax Problem

isn't there anyway I could do this through coding?

"Dave Peterson" wrote:

Maybe...

If you only make one entry (last used row), you could use that.

If you make multiple entries, maybe you could add an indicator column that says
this should be copied or left alone.

drinese18 wrote:

ok it works just the same as my code but the thing is I want it to copy the
last updated range, not necessarily A3111 to H3111, the workbook gets updated
everyday, so whatever was entered last I it to copy it, not just from A3111
to H3111 only, is there anyway to do that?

"Dave Peterson" wrote:

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default DAO Syntax Problem

Only if you can describe the rules that you would use if you had to do it
manually.



drinese18 wrote:

isn't there anyway I could do this through coding?

"Dave Peterson" wrote:

Maybe...

If you only make one entry (last used row), you could use that.

If you make multiple entries, maybe you could add an indicator column that says
this should be copied or left alone.

drinese18 wrote:

ok it works just the same as my code but the thing is I want it to copy the
last updated range, not necessarily A3111 to H3111, the workbook gets updated
everyday, so whatever was entered last I it to copy it, not just from A3111
to H3111 only, is there anyway to do that?

"Dave Peterson" wrote:

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 59
Default DAO Syntax Problem

Basically the procedure would be where we ran a macro that downloads a line
of data from an online application. We perform this task everyday so those
values don't stay the same, however I don't want them to be overwritten, so
when I copy it and paste it into the other workbook I would normally paste it
under the last record I copied to the workbook, after I've done that then I
save it and close it

"Dave Peterson" wrote:

Only if you can describe the rules that you would use if you had to do it
manually.



drinese18 wrote:

isn't there anyway I could do this through coding?

"Dave Peterson" wrote:

Maybe...

If you only make one entry (last used row), you could use that.

If you make multiple entries, maybe you could add an indicator column that says
this should be copied or left alone.

drinese18 wrote:

ok it works just the same as my code but the thing is I want it to copy the
last updated range, not necessarily A3111 to H3111, the workbook gets updated
everyday, so whatever was entered last I it to copy it, not just from A3111
to H3111 only, is there anyway to do that?

"Dave Peterson" wrote:

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default DAO Syntax Problem

If you can always use the last used row in column A:

With ActSheet
Set RngToCopy = .cells(.rows.count,"A").end(xlup).resize(1,8)
End With

drinese18 wrote:

Basically the procedure would be where we ran a macro that downloads a line
of data from an online application. We perform this task everyday so those
values don't stay the same, however I don't want them to be overwritten, so
when I copy it and paste it into the other workbook I would normally paste it
under the last record I copied to the workbook, after I've done that then I
save it and close it

"Dave Peterson" wrote:

Only if you can describe the rules that you would use if you had to do it
manually.



drinese18 wrote:

isn't there anyway I could do this through coding?

"Dave Peterson" wrote:

Maybe...

If you only make one entry (last used row), you could use that.

If you make multiple entries, maybe you could add an indicator column that says
this should be copied or left alone.

drinese18 wrote:

ok it works just the same as my code but the thing is I want it to copy the
last updated range, not necessarily A3111 to H3111, the workbook gets updated
everyday, so whatever was entered last I it to copy it, not just from A3111
to H3111 only, is there anyway to do that?

"Dave Peterson" wrote:

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson
  #13   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 59
Default DAO Syntax Problem

Hey thanks a lot, it works perfect

"Dave Peterson" wrote:

If you can always use the last used row in column A:

With ActSheet
Set RngToCopy = .cells(.rows.count,"A").end(xlup).resize(1,8)
End With

drinese18 wrote:

Basically the procedure would be where we ran a macro that downloads a line
of data from an online application. We perform this task everyday so those
values don't stay the same, however I don't want them to be overwritten, so
when I copy it and paste it into the other workbook I would normally paste it
under the last record I copied to the workbook, after I've done that then I
save it and close it

"Dave Peterson" wrote:

Only if you can describe the rules that you would use if you had to do it
manually.



drinese18 wrote:

isn't there anyway I could do this through coding?

"Dave Peterson" wrote:

Maybe...

If you only make one entry (last used row), you could use that.

If you make multiple entries, maybe you could add an indicator column that says
this should be copied or left alone.

drinese18 wrote:

ok it works just the same as my code but the thing is I want it to copy the
last updated range, not necessarily A3111 to H3111, the workbook gets updated
everyday, so whatever was entered last I it to copy it, not just from A3111
to H3111 only, is there anyway to do that?

"Dave Peterson" wrote:

Untested, but it did compile:

Option Explicit
Sub Copydata()

Dim RngToCopy As Range
Dim ActSheet As Worksheet
Dim wkbk As Workbook
Dim DestCell As Range

Set ActSheet = ActiveSheet
With ActSheet
Set RngToCopy = .Range("A3111:H3111")
End With

'Path to file to paste
Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\CI-Adagio-History-Web.xls")

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
'next open cell in column A--I changed the .offset
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

With ActSheet
Set RngToCopy = .Range("K1")
End With

Set wkbk = Workbooks.Open _
(Filename:="C:\Documents and Settings\jermaine_wanyou\" _
& "Desktop\Test_Adagio Updated\Adagio-daily.xls", _
UpdateLinks:=0)

With wkbk.Worksheets(1) 'or wkbk.worksheets("somesheetnamehere")
Set DestCell = .Range("a2")
End With

RngToCopy.Copy
DestCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

wkbk.Close savechanges:=True

Application.CutCopyMode = False

End Sub



drinese18 wrote:

Yeh I did that already but regardless I abandoned that code and wrote a
different one, it works but I want it to take the last data entered on the
main worksheet then copy it to the 2 other workbooks, reason for this is that
the main workbook gets updated everyday, so I don't want it from just a set
range but rather the last part of the workbook that is updated, my code can
be seen below:

Sub Copydata()


Range("A3111:H3111").Select
Selection.Copy

'Path to file to copy from
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\CI-Adagio-History-Web.xls"

'Appends data
ActiveSheet.Cells(rows.count, "A").End(xlUp).Offset(0, 1).Select

'Paste Special
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A3114").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A3111").Select

'Scroll to empty cell
ActiveWindow.ScrollRow = 3054
ActiveWindow.ScrollRow = 2572
ActiveWindow.ScrollRow = 1929
ActiveWindow.ScrollRow = 1528
ActiveWindow.ScrollRow = 1126
ActiveWindow.ScrollRow = 805
ActiveWindow.ScrollRow = 563
ActiveWindow.ScrollRow = 403
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5

'Copies from current date
Range("K1").Select
Selection.Copy
Workbooks.Open Filename:= _
"C:\Documents and Settings\jermaine_wanyou\Desktop\Test_Adagio
Updated\Adagio-daily.xls" _
, UpdateLinks:=0

'Paste special values, date
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Hope you can help me with this, it would be really appreciated, thanks

"Dave Peterson" wrote:

This portion of the .copy line:

Destination:=Workbooks("CI-Adagio-History-Web.xls") _
.Worksheets("Sheet1").Range("A65536").End(xlUp).Of fset(1, 8)

Says to start at the bottom of column A, go up to the last used cell, come down
one row and then over 8 columns.

So I'd change that .offset(1,8) to .offset(1,0)
to stay in the same column.

drinese18 wrote:

Ok, but nevermind I found what the problem was with my syntax, I forgot to
place the "_" to connect the statements, so apart of the code should look
like this:

Range(rngFound, rngFound.Offset(1, 8)).Copy _
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets
_("Sheet1").Range("A65536").End(xlUp).Offset(1, 8)

instead of this:

Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination:=Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)

but I have one more problem, basically when it copies from the main workbook
to the other one, it pastes the values to the wrong part of the sheet, it
should be pasting it between cells A and H but instead its pasting it between
I and P, got any pointers?

"Dave Peterson" wrote:

First, I don't speak DAO.

But this line:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
should probably be:
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlup).Row)

I'd use:
Set rng1 = .Range("A1:A" & .cells(.rows.count,"A").End(xlup).Row)



drinese18 wrote:

I am trying to write a macro that will download a range of data from one
workbook to the next, but I am having some problems with my code, I am trying
to incorporate DAO within the code to be able to connect to the other
workbooks, but unfortunately it is not working. My DAO syntax kind of sucks
so bear with me, I hope someone can shed some light on this, some help will
be greatly appreciated:

Option Explicit

Private Sub CommandButton1_Click()
Dim rng1 As Range
Dim rngFound As Range
Dim rngCollector As String

'Dim Dest As DAO.Connection
'Dim Destination As DAO.Recordset

With Worksheets("Index")
Set rng1 = .Range("A1:A" & .Range("A65536").End(xlDown).Row)
End With
Set rngFound = rng1.Find(what:=DateValue(Me.TextBox1.Value))
Range(rngFound, rngFound.Offset(1, 8)).Copy
Destination =
Workbooks("CI-Adagio-History-Web.xls").Worksheets("Sheet1").Range("A65536").End (xlUp).Offset(1, 8)
Set rngFound = Nothing
Unload Me
End
End Sub

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


--

Dave Peterson

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
Problem with Syntax? MurrayBarn Excel Worksheet Functions 8 June 12th 09 01:45 PM
Syntax Problem Len Excel Programming 4 July 17th 07 04:14 PM
Help Please: Syntax Problem Oblivious Excel Programming 3 June 6th 06 03:00 PM
syntax problem dorre Excel Programming 3 March 20th 06 05:20 PM
Another Syntax Problem Sharlene England Excel Programming 2 December 2nd 03 10:04 PM


All times are GMT +1. The time now is 09:32 AM.

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"