Page 2 of 2

Posted: 22. Jun 2009 13:40
by SME
:shock:

Jeg tror, at jeg skal sidde med materialet i hånden for at kunne komme med et kvalificeret løsning, og da jeg ikke tror du vil sende en masse følsom data til Mr. X "from the Internet", er det okay vi stopper her. :wink:
Det er altså hvis du fik en løsning der kunne bruges.

Posted: 22. Jun 2009 13:45
by SnowmanDK
Da jeg ikke vil være skyld i at du mister din nattesøvn, tror jeg bare vi skal lade det ligge :wink:
Men mange tak for den hjælp I begge har givet mig. :)
Det er et stort skridt i den rigtige retning, så med lidt tålmodighed skal jeg nok finde den endelige løsning.

Posted: 22. Jun 2009 13:59
by Jens S
Prøv at vende tilbage til mit første forslag, indtast i B1 og træk nedad:
=SAMMENLIGN(A1;$E$1:$E$100;0)

men først vil jeg lave sammenligningskolonne E:

1. Marker alle dine tal i kolonne A
2. Menu: Data>Filter>Standardfilter
3. Kolonne A = -ikke tom-
4. Flere
5. x Kopier resultater til E1
x Kun unikke poster

mvh
Jens

Posted: 22. Jun 2009 14:51
by SnowmanDK
Tak for forslaget Jens, men det ser ud til at filteret dør når den er nået ca 220 rækker ned. Så stopper den ganske simpelt med at lave udregninger.

Slap du nu bare af :)

Jeg skal nok smide en besked her hvis jeg får det løst ;)

Posted: 25. Jun 2009 13:48
by SnowmanDK
Så fandt jeg en løsning.
Og som lovet er den her.
Det er nok ikke den mest optimale, men den virker.
Jeg skrev en makro i Basic (da jeg kender VB i forvejen).
Den ser ud som følger:

Code: Select all

REM  *****  BASIC  *****
Sub Main
	Dim Doc As Object
	Dim Sheet As Object
	Dim SourceCell As Object
	Dim DestCell As Object
	Dim CompareCell As Object
	Dim StartRow As Integer
	Dim EndRow as Integer
	Dim SourceColumn as Integer
	Dim DestinationColumn as Integer
	Dim Counter as Integer
	Doc = ThisComponent
	Counter = 1

	'-- DER MÅ IKKE REDIGERES OVENFOR DENNE LINIE ------------------------------------------
	Sheet = Doc.Sheets(0) 'Vælger hvilken fane der skal behandles (0=fane 1, 1=fane 2 o.s.v.)
	SourceColumn = 1 'Vælger kolonnen med kildedata (EAN numre). 0=kolonne A, 1=kolonne B o.s.v.
	DestinationColumn = 2 'Vælger destinationskolonnen (til fortløbende numre). 0=kolonne A, 1=kolonne B o.s.v.
	StartRow = 0 'Vælger den første række der skal behandles. 0=række 1, 1=række 2 o.s.v.
	EndRow = 1500 'Vælger den sidste række der skal behandles. 0=række 1, 1=række 2 o.s.v.
	'-- DER MÅ IKKE REDIGERES NEDENFOR DENNE LINIE ------------------------------------------

 	For i1 = StartRow to EndRow
 		SourceCell = Sheet.getCellByPosition(SourceColumn, i1)
 		DestCell = Sheet.getCellByPosition(DestinationColumn, i1)
		If SourceCell.Value < 1 Then
			Goto GetNextValue
		EndIf
 		For i2 = StartRow to EndRow
	 		CompareCell = Sheet.getCellByPosition(SourceColumn, i2)
	 		DestCell = Sheet.getCellByPosition(DestinationColumn, i2)
			If CompareCell.Value = SourceCell.Value And DestCell.Value < 1 Counter Then
					Counter = DestCell.Value + 1
				EndIf
 		Next
 		GetNextValue:
 	Next
End Sub