View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Rob Rob is offline
external usenet poster
 
Posts: 234
Default can anyone help me please?

Thanks Toppers,

I have added the code to my sheet and now I have another
error.

Can I email you the files to take a quick look if thats
ok they only contain a few lines of sample data (50kb)
total.

Is that ok?

Rob
-----Original Message-----
Try this:

Sub DateDiff(InRef, InDate, Invalue)

Dim DestCol As Integer, DestRow As Long, Diff1 As

Integer, Diff2 As Integer
Dim OutRng As Range, RefCell As Range, DateRng As Range,

Mindiff As Long
Dim ColCount As Integer, c As Integer, Startcol As

Integer, endCol As Integer
Dim Wsout As Worksheet

Set Wsout = Worksheets("Sheet2")


Set RefCell = Wsout.Range("A:A").Find(InRef) ' Find

Reference
DestRow = RefCell.Row ' Set

Row of found reference


Startcol = Wsout.Cells(1, "J").Column
endCol = Wsout.Cells(1, "At").Column
Mindiff = 999999

For c = Startcol To endCol Step 3
If Abs(InDate - Wsout.Cells(DestRow, c).Value) <

Mindiff Then
Mindiff = Abs(InDate - Wsout.Cells(DestRow,

c).Value)
DestCol = c + 1
End If
Next



Set OutRng = Worksheets("Sheet2").Cells(DestRow, DestCol)
OutRng = InDate
OutRng.Offset(0, 1) = Invalue

End Sub

" wrote:

They are dates then two empty cols then a date then 2
empty cols etc all different dates some rows have a

range
between J and AT of 1 year some of 2.

Strange I know but if you imagine

Date Blank Blank Date Blank Blank Date Blank Blank

-----Original Message-----
Rob,
Are columns between J and AT dates?

"Rob" wrote:

Thanks toppers,

I have checked the code in my worksheet and it

works
to
the point it says data overflow.

The date to match is between columns J and AT in

the
sheet so is it possible to say something like look

in
DestRow between J and AT for the nearest date

Thanks again.

Rob
-----Original Message-----
Some Code:


Sub Test()
' Assumes Data in row 2 (Reference, Date and Value)
Call DateDiff(Cells(2, 1), Cells(2, 2), Cells

(2,
3))
End Sub
---------------------------------------------------

---
---
--------------------------------------
Sub DateDiff(InRef, InDate, Invalue)

Dim DestCol As Integer, DestRow As Long, Diff1 As
Integer, Diff2 As Integer
Dim OutRng As Range, RefCell As Range
Dim Wsout As Worksheet

Set Wsout = Worksheets("Sheet2")


Set RefCell = Wsout.Range("A:A").Find(InRef) '

Find
Reference
DestRow =
RefCell.Row ' Set

Row
of found
reference

Diff1 = Abs(InDate - Wsout.Cells(DestRow, 2))
Diff2 = Abs(InDate - Wsout.Cells(DestRow, 5))

If Diff1 < Diff2 Then
DestCol = 3
Else
DestCol = 6
End If

Set OutRng = Worksheets("Sheet2").Cells(DestRow,

DestCol)
OutRng = InDate
OutRng.Offset(0, 1) = Invalue

End Sub
---------------------------------------------------

---
---
--------------------------------------
HTH


"Rob" wrote:

Hi I have two spreadsheets, if both are open and

the
first one contains 3 columns.

The first column is a reference the second one

is
an
amount and the third is a date.

The second spreadsheet has a column which the
reference
will match. There will only be one match in the

list.

Then I will have my row number. The amount and

the
date
then need entering on the row with the matching

ref
in
spreadsheet number 2.

I'm not sure if its possible to enter them as I

would
like though.

Imagine the row contains data like the following

in
the
second sheet-

Col A Col B Col C Col D Col E Col

F
Col
G
Ref match 17/01/2005 17/02/2005

So if the first sheet had data like this

Col A Col B Col C
Ref match 16/02/2005 52356

The ref would match so in the same line col f

and g
would
be filled as below

Col A Col B Col C Col D Col E Col

F
Col G
Ref match 17/01/2005 17/02/2005

16/02/2005
52356

It has gone there as it is nearer to the date
17/02/2005
than the date in B.

I hope I have explained it well enough for you

to
be
able
to help!

Thanks

Rob



.


.


.