Avatar billede spoi Nybegynder
21. april 2006 - 06:35 Der er 54 kommentarer og
1 løsning

opsalg i usorteret kolonne

Hej jeg har en værdi fra en kolonne som skal slås op i en kolonne i et andet regneark.

Kolonnen har filter og er ikke sorteret og kan ikke sorteres.

I opslagskolonnen optræder værdien ofte flere gange sog ikke hulter til bulter men lige efter hinanden.

Returværdierne skal henhodlsvis være den første værdi i kolonne 5
Samt max de tre første forskellige værdier i kolonne 4.

Et fiktivt eksempel

                      kolonnne 4      kolonne 5

2010                  audi            1234
2010                  audi            1234
2020                  bmw              4567
2020                  bmw              7894
2005                  citrroen        6547
2005                  citroen          6547
2005                  mazda            6547
2005                  ford            4561
2030                  ford            9874
2040                  honda            3214
2040                  vw              6542

Hvis søgeværdien feks er 2005 returneres 6547 og citroen/mazda/fordi er søgeværdien 2040 returneres 3214 og honda/vw. Det gør ikke så meget hvis alle værdier fra kolonne 4 kommer med så kan jeg selv sortere fra - men det er vigtigt de står i fortløbende rækkefølge.

Håber nogle kan hjælpe.

På forhånd tak

Laila
Avatar billede spoi Nybegynder
21. april 2006 - 09:39 #1
øger gerne antal point til 200
Avatar billede kabbak Professor
21. april 2006 - 09:56 #2
et forslag.

Har du prøvet med advanseret filter, det kan hente alle oplysninger over på et nyt ark.

Du skal bare starte fra det nye ark, og så henvise til dataerne i det andet ark.
Avatar billede spoi Nybegynder
21. april 2006 - 10:12 #3
nej det har jeg ikke overvejet

Men jeg skal jo ikke bruge alle oplysninger. Kun udvalgte oplysninger
feks oplysninger på 20 numre ud af omtrent 1100 numre.

Det der sker er at jeg skal hente data fra 4 forskellige excel filer og taste dem manuelt ind i axapta. Det er hidtil sket ved at man manuelt har hentet alle oplysninger fra de 4 foskellige filer og skrevet dem ind i et skema. Det mener jeg er for usikkert og giver mulighed for fejl undervejs. Derfor ønsker jeg at data automatisk kan hentes over i et skema.

Men ok hvis problemet med hentning af data er at at kolonnen man søger i ikke er sorteret og et avanceret filter kan klare en sortering, ja så kan det være en mulighed. Men det er data fra 3-4 forskellige excel filer.

Men man kan selvfølgelig oprette en excel fil hvor hvert datamateriale fra de 3.4 filer ligger på hvert sit ark og se hente det ind i mit skema.

Det er excelfiler der løbende opdateres og de varenumre jeg skal bruge i næste uge står endnu ikke i filerne.

Men det er ret omstændigt og tidskrævende at hente dataerne manuelt.

har hentet data fra en fil. Det går godt i 95 % af tilfældene. Her står dataerne sorteret i selve skemaet jeg søger i, men ikke i filteret og det er netop de varenumre der er står usorteret i filteret jeg har probelemer med.

Giver det overhovedet mening det jeg skriver.

Laila
Avatar billede kabbak Professor
21. april 2006 - 11:16 #4
advanseret filter, bruger søgekretirie, så du får kun dem du ber om.

Men jeg tror ikke du kommer udenom makroprogrammering, når du skal have flere resultater med over.
Avatar billede spoi Nybegynder
21. april 2006 - 11:28 #5
Er der nogen der har en "opskrift" til hvordan jeg gør dette. Er ny. Men he he har masser er point og er gavmild.

Laila
Avatar billede mrjh Novice
21. april 2006 - 12:41 #6
Indsæt makro i arkmodul
Forudsætter at dine datakolonner er i A:C. Sorterer og returnerer herefter værdien i kol. D:F. Tilret evt. dine område i koden Range("område")
Den smider dog alle værdier ind kolonne 4 (dine biler). Jeg arbejdr stadigt på at begrænse det til maks 3.


Sub sorter()
Dim tæl As Integer, i As Integer
Application.ScreenUpdating = False
Range("d10:f100").ClearContents
i = 0
For Each a In Range("a10:a100")
tæl = 0
    For Each b In Range("a10:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        End If
    Next
    If tæl = 1 Then
    Range("d10").Offset(i, 0) = a
    Range("f10").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    End If
Next

j = 0
For Each c In Range("d10:d100")
    For Each d In Range("a10:a100")
        If c = d And c <> "" Then
        Indsat = Indsat & d.Offset(, 1).Value & "/"
        End If
    Next
    Range("e10").Offset(j, 0) = Indsat
    j = j + 1
    Indsat = ""
Next
   
End Sub
Avatar billede mrjh Novice
21. april 2006 - 12:43 #7
En lille tilretning


Sub sorter()
Dim a, b, c, d, indsat
Application.ScreenUpdating = False
Range("d10:f100").ClearContents
i = 0
For Each a In Range("a10:a100")
tæl = 0
    For Each b In Range("a10:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        End If
    Next
    If tæl = 1 Then
    Range("d10").Offset(i, 0) = a
    Range("f10").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    End If
Next

j = 0
For Each c In Range("d10:d100")
    For Each d In Range("a10:a100")
        If c = d And c <> "" Then
        indsat = indsat & d.Offset(, 1).Value & "/"
        End If
    Next
    Range("e10").Offset(j, 0) = indsat
    j = j + 1
    indsat = ""
Next
Application.ScreenUpdating = True
End Sub
Avatar billede mrjh Novice
21. april 2006 - 13:10 #8
Denne smider maks 3 biler ind i din kolonne.


Sub sorter()
Dim a, b, c, d, tæl, indsat
Application.ScreenUpdating = False
Range("d10:f100").ClearContents
i = 0
For Each a In Range("a10:a100")
tæl = 0
    For Each b In Range("a10:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        End If
    Next
    If tæl = 1 Then
    Range("d10").Offset(i, 0) = a
    Range("f10").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    End If
Next

j = 0
For Each c In Range("d10:d100")
    For Each d In Range("a10:a100")
        If c = d And c <> "" Then
        tæl = tæl + 1
        If tæl <= 3 Then
        indsat = indsat & d.Offset(, 1).Value & "/"
        End If
        End If
    Next
    Range("e10").Offset(j, 0) = indsat
    j = j + 1
    indsat = ""
    tæl = 0
Next
Application.ScreenUpdating = True
End Sub
Avatar billede mrjh Novice
23. april 2006 - 19:48 #9
Har rettet en lille fejl så den nu smider maks 3 FORSKELLIGE værdier ind i kolonnen



Sub sorter1()
Application.ScreenUpdating = False
Range("d10:f100").ClearContents

For Each a In Range("a10:a100")
tæl = 0
tæl1 = 0
    For Each b In Range("a10:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        If a.Offset(, 1) = b.Offset(, 1) Then
        tæl1 = tæl1 + 1
        End If
        End If
    Next
   
    If tæl = 1 Then
    Range("d10").Offset(i, 0) = a
    Range("f10").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    txt = Range("e10").Offset(i - 1, 0)
    Range("g10").Offset(i - 1, 0) = Left(txt, 4)
    tæl2 = 0
    indsat = ""
    End If
   
    If tæl1 = 1 Then
    tæl2 = tæl2 + 1
    If tæl2 <= 3 Then
    indsat = indsat & a.Offset(, 1) & "/"
    Range("e10").Offset(i - 1, 0) = indsat
    End If
    End If
Next

For Each txt In Range("e10:e100")
    If txt <> "" Then
    txt1 = Left(txt, Len(txt) - 1)
    Range("e10").Offset(j, 0) = txt1
    j = j + 1
    End If
Next

Application.ScreenUpdating = True
End Sub
Avatar billede mrjh Novice
23. april 2006 - 19:50 #10
Og her er så den rigtige :-)

Sub sorter1()
Dim a, b, c, d, i, tæl, tæl1, tæl2, indsat
Application.ScreenUpdating = False
Range("d10:f100").ClearContents

For Each a In Range("a10:a100")
tæl = 0
tæl1 = 0
    For Each b In Range("a10:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        If a.Offset(, 1) = b.Offset(, 1) Then
        tæl1 = tæl1 + 1
        End If
        End If
    Next
   
    If tæl = 1 Then
    Range("d10").Offset(i, 0) = a
    Range("f10").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    tæl2 = 0
    indsat = ""
    End If
   
    If tæl1 = 1 Then
    tæl2 = tæl2 + 1
    If tæl2 <= 3 Then
    indsat = indsat & a.Offset(, 1) & "/"
    Range("e10").Offset(i - 1, 0) = indsat
    End If
    End If
Next

For Each txt In Range("e10:e100")
    If txt <> "" Then
    txt1 = Left(txt, Len(txt) - 1)
    Range("e10").Offset(j, 0) = txt1
    j = j + 1
    End If
Next

Application.ScreenUpdating = True
End Sub
Avatar billede spoi Nybegynder
24. april 2006 - 10:42 #11
hej og tak

Hvor lægger jeg koden er ikke så "hjemmevant" i makroer

Tester det hurtigst muligt. Håber jeg kan nå at se på det i dag eller i morgen, når jeg har lidt putserum mellem arbejdsopgaverne.

LN
Avatar billede mrjh Novice
24. april 2006 - 10:48 #12
Højreklik på din arfane og vælg programkode. Kopier den sidste kode ind og luk vinduet. Herefter kan du finde sorter1 under menuen funktioner og makro (tryk evt. bare Alt+F8) og afspille den herfra. Herinde kan du også redigere koden og sætte en genvejstast under indstillinger for makroen
Avatar billede spoi Nybegynder
24. april 2006 - 15:16 #13
hmm forstår det ikke helt.

Skal min ikke fortælle i makroen i hvilken fil den skal slå dataværdierne op i?

Jeg har en søgeværdi som den skal slå op i en anden fil - i den første kolonne og retturnere noget fra kolonne 7 og 10.

I kolonne 7 står feks bilmærker , hvoraf der max skal de tre første forskellige og fra kolonne 10 det første tal.

Er det mig der bare ikke fatter en pind ;O)

Laila
Avatar billede mrjh Novice
24. april 2006 - 15:45 #14
Det kræver lige lidt tilretning. Jeg går på senere i aften, er lige på job nu.
Avatar billede spoi Nybegynder
24. april 2006 - 15:55 #15
ja ja fint jeg er bare glad for at have fundet stedet her og håber at lære en masse. Og tak fordi du gider hjælpe.

Skal du have nogle flere oplysninger eller uddybet noget. Ved ikke om jeg har forklaret det godt nok.

Kigger herind ind i mellem i aften hjemmefra.

Laila
Avatar billede mrjh Novice
24. april 2006 - 22:33 #16
Makroen er tilrettet til at hente fra en fil. Ret selv stien, filnavnet, arknavne og evt. celleområderne. Indsæt Makroen i eksempelvis ark 2.
Filen du henter fra har jeg kaldt Frafil, Ark1, Filen du henter til har jeg kaldt Tilfil, Ark1. Områderne ændrer du i Range(" ").



Sub sorter1()

Dim a, b, c, d, i, tæl, tæl1, tæl2, indsat

Application.ScreenUpdating = False
Sheets("Ark1").UsedRange.ClearContents
Sheets("Ark2").UsedRange.ClearContents
Workbooks.Open Filename:= _
"C:\Documents and Settings\John\Skrivebord\Makroeksempler"
Sheets("Ark14").Range("a10:c100").Copy _
Destination:=Workbooks("Mappe1").Sheets("Ark1").Range("a1")
Workbooks("Makroeksempler").Close savechanges:=False

For Each a In Sheets("Ark1").Range("a1:a100")
tæl = 0
tæl1 = 0
    For Each b In Sheets("Ark1").Range("a1:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        If a.Offset(, 1) = b.Offset(, 1) Then
        tæl1 = tæl1 + 1
        End If
        End If
    Next
   
    If tæl = 1 Then
    Range("a1").Offset(i, 0) = a
    Range("c1").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    tæl2 = 0
    indsat = ""
    End If
   
    If tæl1 = 1 Then
    tæl2 = tæl2 + 1
    If tæl2 <= 3 Then
    indsat = indsat & a.Offset(, 1) & "/"
    Range("b1").Offset(i - 1, 0) = indsat
    End If
    End If
Next

For Each txt In Range("b1:b100")
    If txt <> "" Then
    txt1 = Left(txt, Len(txt) - 1)
    Range("b1").Offset(j, 0) = txt1
    j = j + 1
    End If
Next

Rows("1:100").AutoFit
Columns("a:iv").AutoFit
Application.ScreenUpdating = True

End Sub
Avatar billede mrjh Novice
25. april 2006 - 07:31 #17
Der var denne her selvfølgelig


Sub sorter1()

Dim a, b, c, d, i, tæl, tæl1, tæl2, indsat

Application.ScreenUpdating = False
Sheets("Ark1").UsedRange.ClearContents
Sheets("Ark2").UsedRange.ClearContents
Workbooks.Open Filename:= _
"C:\Mappe\Frafil.xls"
Sheets("Ark1").Range("a10:c100").Copy _
Destination:=Workbooks("Tilfil").Sheets("Ark1").Range("a1")
Workbooks("Frafil").Close savechanges:=False

For Each a In Sheets("Ark1").Range("a1:a100")
tæl = 0
tæl1 = 0
    For Each b In Sheets("Ark1").Range("a1:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        If a.Offset(, 1) = b.Offset(, 1) Then
        tæl1 = tæl1 + 1
        End If
        End If
    Next
   
    If tæl = 1 Then
    Range("a1").Offset(i, 0) = a
    Range("c1").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    tæl2 = 0
    indsat = ""
    End If
   
    If tæl1 = 1 Then
    tæl2 = tæl2 + 1
    If tæl2 <= 3 Then
    indsat = indsat & a.Offset(, 1) & "/"
    Range("b1").Offset(i - 1, 0) = indsat
    End If
    End If
Next

For Each txt In Range("b1:b100")
    If txt <> "" Then
    txt1 = Left(txt, Len(txt) - 1)
    Range("b1").Offset(j, 0) = txt1
    j = j + 1
    End If
Next

Rows("1:100").AutoFit
Columns("a:iv").AutoFit
Application.ScreenUpdating = True

End Sub
Avatar billede spoi Nybegynder
25. april 2006 - 08:14 #18
Jeg må lige høre. Der sket intet med den fil jeg henter fra vel?

Det vil nemlig være en katastrofe af 1. karat.

Det jeg reagerer på er at der stå ClearContents - men det er kun der hvor jeg levere data - eller hvad?

LN
Avatar billede spoi Nybegynder
25. april 2006 - 08:29 #19
Ok lidt skete der

Mit ark 1 og 2 fik slettet indholdet. På ark 1 stod ellers mine opslagsværdier.
Men det er ok har taget kopier.

Ja jeg er altså dum til det her.

Får desuden en fejlmeddelelse Subscript out of range.

Her er hvad jeg har sat ind. Makroen er sat ind på ark1. Er det korrekt.

Sub sorter1()

Dim a, b, c, d, i, tæl, tæl1, tæl2, indsat

Application.ScreenUpdating = False
Sheets("Ark1").UsedRange.ClearContents
Sheets("Ark2").UsedRange.ClearContents
Workbooks.Open Filename:= _
" h:\Nye skiver\2006\opstart_skiver_checkliste test.xls"
Sheets("Checkliste").Range("a4:ah900").Copy _
Destination:=Workbooks("h:\Nye skiver\2006\test af makro.xls").Sheets("Ark1").Range("a2")
Workbooks("Y:\holstbro\opstart_skiver_checkliste.xls ").Close savechanges:=False

For Each a In Sheets("Ark1").Range("a2:a100")
tæl = 0
tæl1 = 0
    For Each b In Sheets("Ark1").Range("a2:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        If a.Offset(, 1) = b.Offset(, 1) Then
        tæl1 = tæl1 + 1
        End If
        End If
    Next
   
    If tæl = 1 Then
    Range("a2").Offset(i, 0) = a
    Range("c2").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    tæl2 = 0
    indsat = ""
    End If
   
    If tæl1 = 1 Then
    tæl2 = tæl2 + 1
    If tæl2 <= 3 Then
    indsat = indsat & a.Offset(, 1) & "/"
    Range("b1").Offset(i - 1, 0) = indsat
    End If
    End If
Next

For Each txt In Range("b1:b100")
    If txt <> "" Then
    txt1 = Left(txt, Len(txt) - 1)
    Range("b1").Offset(j, 0) = txt1
    j = j + 1
    End If
Next

Rows("1:100").AutoFit
Columns("a:iv").AutoFit
Application.ScreenUpdating = True

End Sub



Laila
Avatar billede spoi Nybegynder
25. april 2006 - 08:42 #20
har prøvet at slette det nedrest og kun køre den del af scriptet det kopierer over og får samme fejlmeddelelse
Avatar billede spoi Nybegynder
25. april 2006 - 08:52 #21
endnu en oplysning

Når jeg går ind i funkrioner -> makro står der nu
Ark1.sorter1
'opstart_skiver_checklist test.xls'!disable
'opstart_skiver_checklist test.xls'!SetTime
'opstart_skiver_checklist test.xls'!shutdown

Ved ikke om det kan skyldes at jeg fortrød min handling første gang jeg prøvede makroen og afluttede det hele.

Kan disse linier ikke slettes igen?

Ved det er mange spm. Beklager

Laila
Avatar billede mrjh Novice
25. april 2006 - 08:58 #22
Du skal sætte makroen ind på ark2 i den fil som du kopierer over i og hvor du også sortere værdierne. Makroen kopiere først de samme værdier ind i Ark1 som du har stående i din oprindelige fil og herefter laver den sorteringen i Ark2 (eller hvor du nu vælger at sortere dine data)
Jeg forstår ikke lige hvorfor du lukker Y:\holstbro\opstart_skiver_checkliste.xls.
Det skal være den samme fil som du åbner, h:\Nye skiver\2006\opstart_skiver_checkliste test.xls (altså der hvor du kopierer fra).
Avatar billede spoi Nybegynder
25. april 2006 - 10:12 #23
hmm får stadig samme fejlmeddelelse

har kun sat første del af koden ind for bare at teste dette.

Sub sorter1()

Dim a, b, c, d, i, tæl, tæl1, tæl2, indsat

Application.ScreenUpdating = False
Sheets("Ark1").UsedRange.ClearContents
Sheets("Ark2").UsedRange.ClearContents
Workbooks.Open Filename:= _
"h:\Nye skiver\2006\opstart_skiver_checkliste test.xls"
Sheets("Checkliste").Range("a4:c100").Copy _
Destination:=Workbooks("h:\Nye skiver\2006\test af makro.xls").Sheets("Ark1").Range("a2")
Workbooks("h:\Nye skiver\2006\opstart_skiver_checkliste test.xls ").Close savechanges:=False



End Sub

Jeg gør dette at jeg i forvejen åbner denne fil opstart_skiver.... idet den er meeeeeget tung.

Kan du se hvad der kan være galt?

Laila
Avatar billede spoi Nybegynder
25. april 2006 - 10:14 #24
denne fil opstart skiver er indrettet såledesat man for at kunne redigere skal skrive en kode. Og det bliver jeg bedt om når jeg kører makroen.

LN
Avatar billede spoi Nybegynder
25. april 2006 - 10:33 #25
jeg vil også kunne acceptere manuelt at kopiere over og så derefter at sortere og vælge ud.

Problemet er i hvert fald at jeg dog ikke manuelt kan sortere.

LN
Avatar billede spoi Nybegynder
25. april 2006 - 11:08 #26
hmm har nu prøvet at kopiere over  manuelt og så kun bruge det sidste af koden - så kommer der i hvert fald data over på ark 2, men jeg har så stadig problemet med at jeg ikke har mine opslagsværdier og det er jo kun dem jeg skal have data på.

LN
Avatar billede mrjh Novice
25. april 2006 - 11:35 #27
Stop lige lidt. Jeg tror vi begynder forfra. Som jeg har forstået opgaven, skal du have kopieret dene data fra en fil over i en anden fil i Ark1. Når det så er gjort skal dataene herefter sorteres i den nye fil i Ark2, er det korrekt ?
Avatar billede spoi Nybegynder
25. april 2006 - 11:46 #28
;O)

Det jeg har er et datagrundlag på 1100 forskellige varenumre. Som ligger i opstart_skiver....
Hvert varenummer kan have op til flere "mærker" hvor af jeg max skal bruge de tre første og et det første specifikke "nr"(fra kolonne 10) tilhørende varenummeret.

Når der kommer nye varer skal jeg bla finde nogle data fra opstart_skiver...
Feks har jeg lige fået 20 nye vare numre jeg skal have data for.

På de 20 varenumre skal jeg slå op opstart_skiver i finde max 3 første "mærker" og ja første nr(fra kolonne 10)

Jeg skal også hente data fra andre filer men dem kan jeg hente vha lopslag.

Men det kan jeg åbenbart ikke fra opstart_skiver

Giver det mening?

LN
LN
Avatar billede mrjh Novice
25. april 2006 - 12:02 #29
Hmmmmm som jeg ser det ligger problemet i at du ikke kan åbne opstart_skiver, som du selv anfører. Er det en excel fil og er den skrivebeskyttet ?
Avatar billede spoi Nybegynder
25. april 2006 - 12:44 #30
ja det er en Excel fil og ja den er skrivebeskyttet men jeg kan få lov ta redigere hvis jeg skriver en kode.

Når jeg kører ovenstående makro bliver jeg bedt om at taste koden, så så langt kommer jeg.

Lopslag laver jeg i en 3. fil som er helt skrivebeskyttet og her kan jeg godt få lov at hente værdier.

Laila
Avatar billede mrjh Novice
25. april 2006 - 12:54 #31
Du må ikke have filen opstart_skiver åben inden du kører makroen. Prøv lige at kør denne makro fra din nye fil (som hedder test af makro) og fortæl hvad der sker.

Sub Test()
Application.ScreenUpdating = False
Sheets("Ark1").UsedRange.ClearContents
Sheets("Ark2").UsedRange.ClearContents
Workbooks.Open Filename:= _
"h:\Nye skiver\2006\opstart_skiver_checkliste test.xls"
Sheets("Checkliste").Range("a4:c100").Copy _
Destination:=Workbooks("test af makro").Sheets("Ark1").Range("a2")
Workbooks("opstart_skiver_checkliste test").Close savechanges:=False
End Sub
Avatar billede spoi Nybegynder
25. april 2006 - 13:15 #32
yes yes yes så langt så godt den gør det sørme, så nu har jeg en kopi af arket ovre.

LN
Avatar billede mrjh Novice
25. april 2006 - 13:45 #33
Godt så, kør så hele makroen fra Ark2 i din nye fil "test af makro". Så burde det virke.

Sub sorter1()
Application.ScreenUpdating = False
Sheets("Ark1").UsedRange.ClearContents
Sheets("Ark2").UsedRange.ClearContents
Workbooks.Open Filename:= _
"h:\Nye skiver\2006\opstart_skiver_checkliste test.xls"
Sheets("Checkliste").Range("a4:c100").Copy _
Destination:=Workbooks("test af makro").Sheets("Ark1").Range("a2")
Workbooks("opstart_skiver_checkliste test").Close savechanges:=False

For Each a In Sheets("Ark1").Range("a2:a100")
tæl = 0
tæl1 = 0
    For Each b In Sheets("Ark1").Range("a2:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        If a.Offset(, 1) = b.Offset(, 1) Then
        tæl1 = tæl1 + 1
        End If
        End If
    Next
   
    If tæl = 1 Then
    Range("a2").Offset(i, 0) = a
    Range("c2").Offset(i, 0) = a.Offset(, 2)
    i = i + 1
    tæl2 = 0
    indsat = ""
    End If
   
    If tæl1 = 1 Then
    tæl2 = tæl2 + 1
    If tæl2 <= 3 Then
    indsat = indsat & a.Offset(, 1) & "/"
    Range("b2").Offset(i - 1, 0) = indsat
    End If
    End If
Next

For Each txt In Range("b2:b100")
    If txt <> "" Then
    txt1 = Left(txt, Len(txt) - 1)
    Range("b2").Offset(j, 0) = txt1
    j = j + 1
    End If
Next

Rows("1:100").AutoFit
Columns("a:iv").AutoFit
Application.ScreenUpdating = True

End Sub
Avatar billede spoi Nybegynder
25. april 2006 - 14:04 #34
ok men det giver jo ikke data på feks 20 udvalgte numre men hele listen. Korrekt?

LN
Avatar billede mrjh Novice
25. april 2006 - 14:14 #35
Ja det er korrekt. Men når den har gjort det, kan du jo så lave et lopslag på de sorterede data ud fra varenr. og få returneret det korrekte :-)
Avatar billede spoi Nybegynder
25. april 2006 - 15:18 #36
hmm den kan stadig ikke finde ud af at lave Lopslag og dataerne på ark2 er ikke sorteret efter varenr.

Laila
Avatar billede spoi Nybegynder
25. april 2006 - 15:32 #37
På ark 2 er der desuden det problem at nogle varenumre(kolonne A) står dobbelt med hver sit nr(Kolonne C)

Og ja på ark 2 er kolonne b foskudt. Den starter i b1 hvor de to andre starter i hhv A2 og C2

Håber ikke du er alt for træt af mig.

Laila
Avatar billede mrjh Novice
25. april 2006 - 15:37 #38
Nej jeg giver sgu ikke så let op :-). Jeg tror det nemmeste er at du sender mig filen. Altså den fil hvor du laver din sortering og har indsat makroen og hvor du har hentet alle dataene over fra opstart_skiver. Send til alsikva snabela tiscali.dk
Så prøver jeg at kigge på det i aften.
Avatar billede spoi Nybegynder
25. april 2006 - 15:40 #39
ok det ned forskydningen af kolonne B er vist løst nu.

Laila
Avatar billede spoi Nybegynder
25. april 2006 - 15:48 #40
Ok det er jeg ikke så glad for da det er fortrolige data

Laila
Avatar billede mrjh Novice
25. april 2006 - 16:00 #41
Nå, men så prøver vi her. Den kopierer dataene over og sorterer dem i Ark 2. Godt nok ikke i nr. række følge, men hvis du i Ark3, A1 skriver 2010 og i Ark3 B1 indsætter formel =LOPSLAG(A1;Ark2!A1:A100;2;FALSK), så burde den returnere resultatet for B kolonnen i Ark2, nemlig din tekst bmw/citroen/audi eller hvad der nu står. Ellers forstår jeg ikke rigtig hvad der sker.
Avatar billede spoi Nybegynder
25. april 2006 - 16:13 #42
Min fulde programkode ser sådan ud nu

Sub Test()
Application.ScreenUpdating = False
Sheets("opstart skiver").UsedRange.ClearContents
Sheets("sorteret opstart skiver").UsedRange.ClearContents
Workbooks.Open Filename:= _
"h:\Nye skiver\2006\opstart_skiver_checkliste test.xls"
Sheets("Checkliste").Range("a4:aa900").Copy _
Destination:=Workbooks("test af makro").Sheets("opstart skiver").Range("a2")
Workbooks("opstart_skiver_checkliste test").Close savechanges:=False

For Each a In Sheets("opstart skiver").Range("a2:a900")
tæl = 0
tæl1 = 0
    For Each b In Sheets("opstart skiver").Range("a2:a" & a.Row)
        If a = b And b <> "" Then
        tæl = tæl + 1
        If a.Offset(, 1) = b.Offset(, 1) Then
        tæl1 = tæl1 + 1
        End If
        End If
    Next
   
    If tæl = 1 Then
    Range("a2").Offset(i, 0) = a
    Range("c2").Offset(i, 0) = a.Offset(, 10)
    i = i + 1
    tæl2 = 0
    indsat = ""
    End If
   
    If tæl1 = 1 Then
    tæl2 = tæl2 + 1
    If tæl2 <= 3 Then
    indsat = indsat & a.Offset(, 1) & "/"
    Range("b2").Offset(i - 1, 0) = indsat
    End If
    End If
Next

For Each txt In Range("b2:b900")
    If txt <> "" Then
    txt1 = Left(txt, Len(txt) - 1)
    Range("b2").Offset(j, 0) = txt1
    j = j + 1
    End If
Next

Rows("1:900").AutoFit
Columns("a:iv").AutoFit
Application.ScreenUpdating = True



End Sub



Det er kun et få tal af steder hvor der er gengangere

Feks varenr 201552 der er to linier med BMW i hver
og det samme nr i kolonne c.

Jeg kan sagtens hente data 201552 over på ark 3 med opslag selv om arket starter md 201570 så her er der ikke sorteret

Henter jeg dog 201023 over med oplsag på ark tre får jeg #I/T

Dette ligger dog længere nede på listen.

LN
Avatar billede mrjh Novice
25. april 2006 - 16:30 #43
Ok det er lidt svært når jeg ikke kan se din fil, men gør den det ellers rigtigt ? altså i kolonne A står alle varenumre 1 gang, i kolonne b er forskellig tekst sat ind maks 3 gange og i kolonne C står der et nr. en gang ???
Hvis det er tilfældet forstår jeg ikke at du får fejl på et opslag hvor nummeret eksisterer i A kolonnen, når du samtidig får returneret et andet nr. som eksister.
Avatar billede spoi Nybegynder
25. april 2006 - 19:48 #44
ja umiddelbart ser den ud til at gøre det rigtigt, Har ikke tjrkket data så grundigt.
Så nu er problemet dubletterne som jeg kan leve med og ja lopslag

LN
Avatar billede mrjh Novice
25. april 2006 - 20:15 #45
Hvilke dubletter ?. Den burde ikke lave dubletter. Hos mig smider den det kun ind en gang. M.h.t. Lopslag, er der nogen bestemte den fejler ved eller er det alle sammen ? Det ville være noget lettere hvis man havde arket. kan du ikke tilrette arket på en eller anden måde så der ikke fremgår nogen fortrolige data. Evt. bare med nogen af de data som fejler, og sende det. Ellers tror jeg desværre ikke at jeg kan gøre meget mere. Desværre :-(
Avatar billede spoi Nybegynder
26. april 2006 - 09:46 #46
Der er enkelte varenumre der går igen 2 gange.

Jeg har lige fået 20 nye varenumre og ved dem virker ingen af Lopslag.

Jeg prøver at simulere nogle fiktive data til dig - er det ok?
Det tager nok lidt tid for jeg skal til møder det meste af dagen.

Dvs jeg tager en kopi af filen og retter data til så de ikke er korrekte og fjerner de kolonner der ikke skal bruges. Tror du ikke det kan bruges.

LN
Avatar billede spoi Nybegynder
28. april 2006 - 10:38 #47
Hej igen

Har prøevet at lave nogel fiktive data, men så kan der godt laves lopslag

Men ikke på det originale

Eller jo der kan laves lopslag på de første 20 værdier i kolonnen men ikkepå de resterende

Hmm ved ikke lige hvad søren jeg så skal gøre.

LN
Avatar billede mrjh Novice
28. april 2006 - 10:48 #48
Har du prøvet nogle af de forslag som er givet i dit andet spm. vedr. emnet her på eksperten ?
Avatar billede spoi Nybegynder
28. april 2006 - 11:30 #49
Ja det har jeg. Har sat det op således
=HVIS(ER.FEJL(LOPSLAG($A2;'sorteret opstart skiver'!$A$1:$C$150;2;FALSK));111;LOPSLAG($A2;'sorteret opstart skiver'!$A$1:$C$150;2;FALSK))

Og der kommer ganske rigtigt 111 i mange af cellerne, men varenumrene jeg slår op eksisterer altså i kolonnen.

LN
Avatar billede spoi Nybegynder
28. april 2006 - 12:27 #50
Hmm ved oplag i linie 16 i ark2(sorteret opstart skiver)som jeg slår op i, får jeg en værdi med over. I linie 17 og nedefter får jeg ingen værdi med over.

Har så prøvet at slette linie 17 og kopiere linie 16 ind. Og så overskrive værdiernemed de værdier der opr stod i linie 17. så kan den godt finde ud af at hente værdien.

Hmm siger det dig noget, andet end at det må være noget der er knyttet til cellen.
Ark 2 er det ark, hvor der er udvalgt max de tre første bilmærker for alle varenumre.

LN
Avatar billede spoi Nybegynder
28. april 2006 - 13:46 #51
Hej

Tror det er ved at være løst. Hvad skal du have af point for dette arbejde?

LN
Avatar billede mrjh Novice
28. april 2006 - 14:07 #52
60 P. er fint med mig. Du skal jo også have Point til andre spm. :-)
Avatar billede spoi Nybegynder
28. april 2006 - 14:16 #53
ja det er rigtigt nok he he. Tænk om du ikke nærmest kommer til at få alle mine point med tiden. Men jo jeg synes nu du skal have flere point. Det lovede jeg tidligere i tråden og det holder jeg. Så jeg laver lige et nyt spm der hedder point til mrjh - for det er vel den eneste måde man kan give ekstra point???

Hvordan er point systemet. Kan man kun tjene point eller får man også løbende nogle ekstrapoint med tiden dvs per uge eller måned?

LN

LN
Avatar billede mrjh Novice
28. april 2006 - 14:23 #54
Så vidt jeg ved får man 5 point pr. dag, og man kan tjene p. ved at svare på spørgsmål.
Jeg synes du skal beholde dine point. 60 p. er trods alt for et svært spm. c",)
Avatar billede spoi Nybegynder
28. april 2006 - 14:27 #55
For sent søde.  Har oprettet spm. Jeg er gavmild i dag. Mon ikke du så får mulighed for at være gavmild en anden dag ;O)

LN
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester