macro adding rows

  • Thread starter Thread starter dobbers
  • Start date Start date
D

dobbers

hi,

I have a worksheet that contains data formatted with name start date and
time and finish date and time. I am looking for a macro to insert a row after
each date for example

21/09/2009 13:54 21/09/2009 14:05
21/09/2009 16:59 21/09/2009 18:11

22/09/2009 06:57 22/09/2009 07:15
22/09/2009 07:59 22/09/2009 08:15
22/09/2009 09:29 22/09/2009 09:35
22/09/2009 10:52 22/09/2009 11:14
22/09/2009 12:35 22/09/2009 13:02
22/09/2009 15:04 22/09/2009 15:15
22/09/2009 16:49 22/09/2009 17:18

23/09/2009 06:58 23/09/2009 07:14
23/09/2009 07:51 23/09/2009 08:20
23/09/2009 09:00 23/09/2009 09:18
23/09/2009 12:07 23/09/2009 12:13
23/09/2009 12:40 23/09/2009 12:52
23/09/2009 16:29 23/09/2009 16:50
23/09/2009 17:07 23/09/2009 17:25

As you can see there could be multiple start times for any day any help or
advice then please let me know as it is taking far to long to do manually

Thanks,

James
 
Hi

Try this:

Sub InsertRow()
TargetCol = "A"
Firstrow = 2 'Headings in row 1
LastRow = Cells(Rows.Count, TargetCol).End(xlUp).Row

For r = LastRow - 1 To Firstrow Step -1
If Cells(r, TargetCol).Value <> Cells(r + 1, TargetCol) Then
Rows(r + 1).Insert
End If
Next
End Sub

Regards,
Per
 
I'm assuming that the second set of dates will be the same as the first
(diiferent times obviously) and that the first set are in column A

the dateserial() function is used to strip off the time, so that the dates
can be compared directly

open the VBA editor (ALT+F11) then add a new code module (Insert/Module) and
paste in the following code:

Option Explicit
Sub Main()
Dim thisRow As Long
Dim dn As Date
Dim dn_1 As Date
For thisRow = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
dn = Cells(thisRow, 1)
dn = DateSerial(Year(dn), Month(dn), Day(dn))
dn_1 = Cells(thisRow - 1, 1)
dn_1 = DateSerial(Year(dn_1), Month(dn_1), Day(dn_1))
If dn <> dn_1 Then
Rows(thisRow).Insert
End If
Next
End Sub
 
we both assumed your line was two dates with times in two separate columns.
I stated that was my presumption.
isn't that the case? What are the details of the mismatch?
 
Hi,

The dates are in columns D and E i have other information before them such
as names vehicle registrations and a project code

Thanks,

james
 
so with my code you changed the column to 4 and/or with Per's you changed the
target column to D ?
what was the mismatch relating to?
 
Back
Top