Avatar billede M987 Nybegynder
20. juni 2012 - 14:37 Der er 1 kommentar

Opslag i excel med flere resultater

Jeg har brug for et opslag som returnerer samtlige resultater som matcher opslagskriteriet.

Har en liste med projektnumre, som skal slå op i en anden liste og hente samtlige varenumre ud som matcher projektnummeret (gerne i en celle adskilt af ";").

Projekt nr.    |Varenr
W1    |aa
W1    |ff
W1    |ee
W3    |dd
W2    |cc

Så resultatet bliver ala dette;

W1 aa;ff;ee   
W2 cc
W3 dd

Og da tabellerne er på hvert sit ark, kan man så på en let måde lave et link mellem varenumre sådan at jeg kan klikke på f.eks. aa og blive ført til destinationen i opslagsarket? Uden at jeg skal gøre det manuelt for hver enkelt sag..

Mine VBA-skills rækker desværre ikke til det her:(
Avatar billede Mads Larsen Nybegynder
20. juni 2012 - 15:57 #1
Her er en idé til hvordan man kunne gøre det.
Det med link ved at trykke på aa og ff, det tror jeg ikke kan lade sig gøre når de står som aa;ff - da hyperlink er på hele cellen. Hvis de havde en celle hver kunne det lade sig gøre.

Håber det kan give nogen idér :)

Sub HentVare()

Dim ProjektArk As Worksheet
Dim VareArk As Worksheet
Dim ResultatArk As Worksheet

Set ProjektArk = Sheets("Ark1")
Set VareArk = Sheets("Ark2")
Set ResultatArk = Sheets("Ark3")

ResultatRække = 2
ResultatKolonne = 1

ProjektRække = 1
ProjektKolonne = 1



Do Until ProjektArk.Cells(ProjektRække, ProjektKolonne).Text = ""
    VareRække = 1
    VareKolonne = 1
    ResultatString = ""
   
    ProjectNr = ProjektArk.Cells(ProjektRække, ProjektKolonne).Text
       
    Do Until VareArk.Cells(VareRække, VareKolonne).Text = ""
        If VareArk.Cells(VareRække, VareKolonne).Text = ProjectNr Then
            If Len(ResultatString) = 0 Then
                ResultatString = VareArk.Cells(VareRække, VareKolonne + 1).Text
            Else
                ResultatString = ResultatString & ";" & VareArk.Cells(VareRække, VareKolonne + 1).Text
            End If
        End If
        VareRække = VareRække + 1
    Loop
   
    If Len(ResultatString) > 0 Then
        ResultatArk.Cells(ResultatRække, ResultatKolonne) = ProjectNr
        ResultatArk.Cells(ResultatRække, ResultatKolonne + 1) = ResultatString
        ResultatRække = ResultatRække + 1
    End If
   
    ProjektRække = ProjektRække + 1
Loop

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