LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default New here so be gentle

I have two lists of text values. I put them into two worksheets (Sheet1)
contains the entire list, (call it a master list), the second sheet (Sheet2)
contains the same data minus about 100 entries. (note the master list is
450 rows long)

Anyway, I know you can take a single range and remove duplicates with an
internal Excel function (can't remember it off hand), but I have no idea,
and cannot find a way to evaluate two columns of data, and have it only
return the data that is NOT included in both columns.

I wrote a proceedure (see below), but it takes a heck of a long time (nearly
2 minutes on my old Pentium 3 computer LOL), but it does the job. What I
wondered, is, does Excel have an internal function or proceedure that would
do this? One thing that takes a huge length of time is the counting of the
number of rows with data to get an integer number to do the looping with.
Surely there must be an easy way to get a number of rows with data in a
column easier than the sledge hammer method I use below.

I am fairly conversant with Excel, use it nearly every day, and have created
small utilities to automate things before, but generally I don't concider
myself a "programmer". My background is robotics, and machine code, with
some C++ programming many years ago, but I am tinkering with VBA and Visual
Basic. If anyone wants to use, modify etc this code for thier own use go
ahead... I don't have illusions of grandeur LOL.

As a final note of total ignorance, why does TotalTime = EndTime - Start in
the code result in a bunch of meaningless numbers. I thought you could
manipulate time or date variables using math functions... but as the final
message box shows it displays the time the routine starts, the time it ends,
but the "total time" is meaningless to me.

Code begins
<<<<<<<<<<<<<<<<<<<<<<<<<<
Option Explicit

Private Sub I_Have()

Dim txCardName As String
Dim txOtherName As String
Dim iTotalNumCellsS2 As Integer
Dim iTotalNumCellsS1 As Integer
Dim Start
Dim Endtime
Dim TotalTime
Dim x As Integer
Dim y As Integer
Dim a As Integer
Dim b As Integer

x = 0
Start = Time

Sheets("Sheet1").Select
Range("A1").Select

Do While Not IsEmpty(ActiveCell)
Sheets("Sheet1").Range("A1").Offset(x, 0).Select
x = x + 1
iTotalNumCellsS1 = x - 1
Loop

x = 0

Sheets("Sheet2").Select
Range("A1").Select

Do While Not IsEmpty(ActiveCell)
Sheets("Sheet2").Range("A1").Offset(x, 0).Select
x = x + 1
iTotalNumCellsS2 = x - 1
Loop

y = iTotalNumCellsS1
x = iTotalNumCellsS2
a = 0

Do While a < iTotalNumCellsS2
txCardName = Sheets("Sheet2").Range("A1").Offset(a, 0).Value
b = 0
Do While b < iTotalNumCellsS1
txOtherName = Sheets("Sheet1").Range("A1").Offset(b, 0).Value
If txCardName = txOtherName Then
Sheets("Sheet1").Range("A1").Offset(b, 0).Value = ""
b = iTotalNumCellsS1 + 1
ElseIf txCardName < txOtherName Then
b = b + 1
End If
Loop
a = a + 1
Loop
Endtime = Time
TotalTime = Endtime - Start

MsgBox (Start & " " & Endtime & " " & TotalTime)


End Sub

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


James D. Connelly
----------------------------------------
James D. Connelly
116 Rice Ave
Hamilton, ON L9C 5V9
Phone (905) 575 0284
----------------------------------------


 
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
Beyond a wholesome discipline, be gentle with yourself. Darin[_2_] Excel Programming 0 February 11th 04 09:42 PM


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"