Avatar billede senee Nybegynder
31. maj 2010 - 14:43 Der er 17 kommentarer og
1 løsning

Søg varenummer der findes på flere lokationer

Hej Eksperter,
Jeg har kolonne "A" med vare numre og en kolonne "B" med lokationer. Det samme varenummer kan forekomme flere gange hvis det finde på flere lokationer eks.
A      B
1256  Crane1
3578  Crane1
7556  Crane2
7556  Kanban
8212  Crane1
8447  Kanban

Lokationer kan være crane1, crane2, crane3 eller kanban.

Jeg ønsker en liste med de varenumre der findes på kanban+ enten crane1 eller crane2 eller crane3. Dvs. kanban eller en af crane
I eksemplet er det kun 7556 der opfylder betingelsen.
Avatar billede excelent Ekspert
01. juni 2010 - 10:39 #1
Nu skriver du ikke noget om hvor resltatet skal vises
Koden indsætter varenumre der forekommer mere end 1 gang i kol C&D i samme ark (dvs. det aktive ark når du kører koden)
Dette er den nemmeste løsning idet jeg gætter på at hvis et varenummer findes flere gange, er mindst 1 af dem en kanban
Ellers sig til, så prøver vi noget andet.

Sub test()
Start = 1
slut = Cells(65500, 1).End(xlUp).Row
For t = Start To slut
If Application.CountIf(Range("A" & Start & ":A" & slut), Range("A" & t).Value) > 1 Then
Range("A" & t & ":B" & t).Copy Range("C" & t)
End If
Next
Range("C1:D" & slut).Sort Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("D1") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
Range("A2").Select
End Sub
Avatar billede jkrons Professor
01. juni 2010 - 10:47 #2
excellent-> Jeg savner lidt info i opgaven :-). Hvad sker der, hvis der er to kanban og ingen crane? Eller Crane1 og Crane2 men ingen kanban og så videre .-)

I øvrigt har jeg brugt det meste af aftenen i går, på ikke at få det til at virke med en formel i stedet for en makro.
Avatar billede senee Nybegynder
01. juni 2010 - 11:20 #3
Hej excelent,
Når jeg kører koden får jeg præcis det samme resultat jeg har i forvejen. Det handler om at jeg vil have sorteret alle de varenumre fra der kun findes i en af crane dvs. crane1, crane2 eller crane3.
Jeg skal have kopieret de varenumre over i en anden kolonne hvis varenummeret findes i kanban og mindst et af crane, altså crane1, crane2 eller crane3. Jeg håber det giver lidt bedre forståelse.
Avatar billede excelent Ekspert
01. juni 2010 - 11:50 #4
hej jkrons ja lidt opklarnede oplysninger ville hjælpe

senee> skal det forståes således at
1010 Kanban
1010 Crane1
1010 Crane2

ikke skal med hvorimod

1020 Kanban
1020 Crane2

skal med

altså kun de vaenumre hvor der er 1 Kanban og 1 Crane ?

Starter Kanban med stort forbogstav i alle tilfælde ?
Avatar billede senee Nybegynder
01. juni 2010 - 12:19 #5
Hej,

1010 Crane1
1010 Crane3
Her skal 1010 ikke med

1020 Crane1
1020 Crane2
Her skal 1020 ikke med

1030 Kanban
1030 Crane2
Her skal 1030 med en gang

1040 Crane3
1040 Kanban
Her skal 1040 med en gang.

Kan ban Staves altid med stort.
Avatar billede excelent Ekspert
01. juni 2010 - 12:20 #6
Prøv test denne
Jeg når ikke mere nu, kikker på det i morgen

Sub test2()
Start = 2
slut = Cells(65500, 1).End(xlUp).Row
For t = Start To slut
If Cells(t, "B") = "Kanban" And Application.CountIf(Range("A" & Start & ":A" & slut), Range("A" & t).Value) > 1 Then
Cells(t, "C") = Cells(t, "A"): Cells(t, "D") = Cells(t, "B")
End If
Next
Range("C2:D" & slut).Sort Key1:=Range("C2"), Order1:=xlAscending, Key2:=Range("D1") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal

For l = 2 To Cells(65500, "C").End(xlUp).Row
For t = Start To slut
If Cells(t, "A") = Cells(l, "C") And Cells(t, "B") <> "Kanban" Then Cells(l, "E") = Cells(t, "B")
Next
Next

Range("A2").Select
End Sub
Avatar billede senee Nybegynder
01. juni 2010 - 12:20 #7
Kan ban = Kanban :-)
Avatar billede jkrons Professor
01. juni 2010 - 12:25 #8
Hvad med

1020 Kanban
1020 Kanban
1020 Crane1

1030 Crane1
1030 Crane2
1030 Kanban
Avatar billede jkrons Professor
01. juni 2010 - 12:26 #9
Eller for den sags skyld

1040 Kanban
1040 Kanban
Avatar billede senee Nybegynder
01. juni 2010 - 12:28 #10
Hej,
Kanban kan kun forekomme en gang, så
1020 Kanban
1020 Kanban
1020 Crane1

Her skal jeg bruge 1020 en gang

1030 Crane1
1030 Crane2
1030 Kanban
Her skal jeg bruge 1030 en gang

Det skal jeg fordi Kanban forekommer + (Crane1, Crane2 eller Crane3)
Avatar billede senee Nybegynder
01. juni 2010 - 12:29 #11
Hvis Kanban forekommer alene skal den ikke med.
Avatar billede jkrons Professor
01. juni 2010 - 13:51 #12
Prøv denne makro. Den skriver resultatet i C-kolonnen fra C2 og ned:

Sub UdenDubletter()

Dim rn As Range
Dim rn2 As Range
Dim co As Integer

   
    Set rn = Range("a2:a10")
    For Each c In Range("a2:A10").Cells
        If Application.WorksheetFunction.CountIf(rn, c.Value) >= 2 Then
            If UCase(c.Offset(0, 1).Value) = "KANBAN" Then co = 1
            If UCase(Left(c.Offset(0, 1).Value, 5)) = "CRANE" Then co2 = co2 + 1
            If co = 1 And co2 = 2 Then
                Range("c1000").End(xlUp).Offset(1, 0).Value = c.Value
            End If

        End If
    Next c
End Sub

Ret selv  dit område i A-kolonnen til det rigtige.
Avatar billede senee Nybegynder
01. juni 2010 - 14:37 #13
Hej,
hmm... den skriver ingenting. Har du en ide om, hvad der
Avatar billede jkrons Professor
01. juni 2010 - 16:49 #14
Hos mig skriver den 7556 og ikke andet. Måske er det dit område, som ikke er rigtigt?
Avatar billede excelent Ekspert
02. juni 2010 - 09:53 #15
Hvis du har mulighed for at sende arket så send til:
excelent@gefiber.dk
Avatar billede senee Nybegynder
07. juni 2010 - 06:55 #16
Her Excelent
Tak for hjælpen, det er perfekt :-)
Avatar billede senee Nybegynder
07. juni 2010 - 07:05 #17
Takker
Avatar billede excelent Ekspert
09. juni 2010 - 17:22 #18
Løsningen blev :

Sub Test1()
Sheets("Ark1").Select
Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=5, Criteria1:="Kanban"
Columns("A").Select
Selection.SpecialCells(xlCellTypeVisible).Copy Sheets("Ark2").Range("A1")
Range("A1").Select
Selection.AutoFilter
Sheets("Ark2").Select
rk = Cells(65500, 1).End(xlUp).Row
Range("A1:A" & rk).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("C1"), Unique:=True
End Sub
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