Avatar billede jthornye Nybegynder
15. juli 2008 - 11:01 Der er 9 kommentarer og
1 løsning

En visning af de omligende celler for en resultat celle.

jeg har et LOPSLAG på ark2 hvor at opslagsværdigen henviser til et søge fælt på ark1. "søgning på vare nummer"

resultatet af dette LOPSLAG et en celle i kolonde E på ark2.
"kolonde E = Vare beskrivelse, de omligende er andre data"


jeg vil gerne have en visning på ark1 af resultatcellen og de omligende celler FX:

resultat cellen = E4

vis            b2,c2,d2,e2,f2
                b3,c3,d3,e3,f3
                b4,c4,d4,E4,f4
                b5,c5,d5,e5,f5
                b6,c6,d6,e6,f6
        vis disse celler i en rude på ark 1


resultat celle vil skifte alt efter hvad man søger efter, men resultat celle vil altid være i kolonde E på ark2.

hvad gør jeg.

det går ud over min forstand.

tak for hjælpen.
Avatar billede supertekst Ekspert
15. juli 2008 - 12:42 #1
Er der kun et LOPSLAG på ark2?
Avatar billede jthornye Nybegynder
15. juli 2008 - 12:46 #2
nej der er flere men der er kun et der har med dette at gøre.

det er et opslag i en stor vare/data liste, hvor at jeg skal bruge det til at finde beskrivelser på vare samt andre info i de om ligende celler.

Altså data og beskrivelser på vare der er lidt støre og lidt mindre for at kunde se udvanget.

håbet at det giver mening.
Avatar billede supertekst Ekspert
15. juli 2008 - 13:08 #3
Hvilken celle-adresse er det aktuelle LOPSLAG placeret i?

Mener du at "oversigten" skal vises i en "rude" på ark1 - og ikke ark2, hvor LOPSLAG'et udføres?

Må en evt. løsning være via VBA-kode?
Avatar billede jthornye Nybegynder
15. juli 2008 - 13:30 #4
LOPSLAGET er i dag på Ark1.

jeg bruger i dag et LOPSLAG da det er den eneste måde jeg kender for at søge på et vare nummer og så få oplyst vare beskrivelsen jeg kan sende dig et eksempel jeg har strikke sammen så kan du se hvad jeg mener. hvis det er ok. så send din email til mig på jat@vanpee.dk
Avatar billede jkrons Professor
15. juli 2008 - 14:14 #5
Prøv evt at se her: www.kronsell.net/opslag.htm specielt omkring opslag i en matrix. Her kan du med udgangspunkt i noget du søger efter finde ting, der ligger over, under, til hæjre, venstre for osv. Du Leder fx efter VareID, som findes i E4, og formlen kan så returnere det, som står i E3, F3, B2 osv, ved at specificere et nærmere angivet antal rækker og kolonner fra udgangspunktet.

Hvis du fx indtaster Vare1 i F1, vil denne formel returnere det, som står to celler over og en celle til højre for den celle, der indeholder Vare1 (matrixen her er ganske lille men det ændrer ikke ved princippet).:

=FORSKYDNING(INDIREKTE(ADRESSE(SUMPRODUKT((A1:D5=F1)*(RÆKKE(A1:D5)));SUMPRODUKT((A1:D5=F1)*(KOLONNE(Ark1!A1:D5)))));-2;1)
Avatar billede jkrons Professor
15. juli 2008 - 14:15 #6
Jeg prøver lige adressen igen: http://www.kronsell.net/Opslag.htm
Avatar billede jthornye Nybegynder
15. juli 2008 - 14:40 #7
Hej Jkrons.

tak for dit bud, jeg har kikket lidt på den takst der er på dit link og som jeg forstår det er det så kun de 3 celler der vises altså den der bliver fundet med et LOPSLAG og så de to der kan justeres.

er det ikkke rigtigt.

jeg skal bruge alle cellerne der i mellem også.

forestil dig at det er en vare på en meter man har søgt på og så for oplyst vare nummer og bestillings nummer samt div. data.

jeg vil også kunne se alle di tilsvarende data på de to vare der er minder fx 0,75m 0g 0,5m samt de to der er støre fx 1,25m og 1,5m.  giver det mening.
Avatar billede jkrons Professor
15. juli 2008 - 23:34 #8
Min formel giver en information. Den skal så indsættes i alle de celler, hvor du ønnsker de andre informationer. Derefter skal hver formel tilrettes, så den returnerer information i forhold til udgangspunktet. Forestil dig at Varen på 1 meter står i e4, bestillingsnummeret i d4. I e3 står varen på 0,75 cm. Bestillingsnummeret på denne står i d3, I f3 står nogle data om varen på 0,75. For at få disse informationer skal du have nogle formler, der returnerer data i forhold til varen på 1 meter:
Denne formel returnerer bestillinsnummeret på varen på en meter:

=FORSKYDNING(INDIREKTE(ADRESSE(SUMPRODUKT((A1:D5=X1)*(RÆKKE(A1:D5)));SUMPRODUKT((A1:D5=F1)*(KOLONNE(Ark1!A1:D5)))));0;-1)

Denne formel returnerer bestillingsnummeret på varen på 0,75:

=FORSKYDNING(INDIREKTE(ADRESSE(SUMPRODUKT((A1:D5=F1)*(RÆKKE(A1:D5)));SUMPRODUKT((A1:D5=F1)*(KOLONNE(Ark1!A1:D5)))));-1;-1)

og denne formel returnerer data for varen på 0,75:

=FORSKYDNING(INDIREKTE(ADRESSE(SUMPRODUKT((A1:D5=F1)*(RÆKKE(A1:D5)));SUMPRODUKT((A1:D5=F1)*(KOLONNE(Ark1!A1:D5)))));-1;1)

Og så fremdeles skal du tilpasse formelen for alle de data, du ønsker at returnere. Hvis du ønsker at returnere en celle med bestillingsnummer og 1 celle med varedata for varen, du leder sant de to varer lige større og lige mindre end den, du leder efter, har du altså brug for 8 formler i alt. Nenmlig de otte, der ligge lige rundt om den oprindelige  matrixen.

Du kan ikke lave en formel, der returnerer alle data samtidigt på en menngsfuld måde.
Avatar billede jkrons Professor
15. juli 2008 - 23:36 #9
Og så kan jeg ikke regne. Du skal have 14 versioner af formlen, fo at løse ovenstående problemstilling.
Avatar billede supertekst Ekspert
16. juli 2008 - 09:42 #10
Const ark1Navn = "Ark1"                    'Kan ændres efter behov
Const ark2Navn = "Ark2"                    '-"-
Dim antalVareData
Private Sub worksheet_change(ByVal Target As Excel.Range)
Dim vNr, vNrRække, ark1 As Worksheet, ark2 As Worksheet
Rem Opsætning af ark
    Set ark1 = ActiveWorkbook.Sheets(ark1Navn)
    Set ark2 = ActiveWorkbook.Sheets(ark2Navn)
   
    Application.ScreenUpdating = False
   
Rem Indtastes der nyt varenr
    If Not Intersect(Target, Range("D6:D6")) Is Nothing And _
            Target.Address = "$D$6" Then
        If Target.Value <> "" Then
            vNr = Target.Value
            vNrRække = findVarenr(vNr)
       
            ark1.Activate
       
            If vNrRække > 0 Then
                opbygOversigt vNrRække
            Else
                MsgBox ("Varenr.: " & vNr & " kunne ikke findes")
            End If
        End If
    End If
End Sub
Private Function findVarenr(vNr)
    ark2.Activate
   
    antalVareData = ActiveCell.SpecialCells(xlLastCell).Row
   
    With ark2.Range("A2:A" & CStr(antalVareData))
        Set c = .Find(vNr, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findVarenr = c.Row
        Else
            findVarenr = 0
        End If
    End With
End Function
Private Sub opbygOversigt(vNrRække)
Rem Ryd gammelt indhold i celleOmrådet
    ark1.Activate
    Range("B11:F15").Select
    Selection.ClearContents
   
Rem Placer data for valgte varenr i række 13
    hentVareData vNrRække, 13
   
Rem 2 næste
    hentVareData vNrRække + 1, 14
    hentVareData vNrRække + 2, 15
   
Rem 2 forgående
    hentVareData vNrRække - 1, 12
    hentVareData vNrRække - 2, 11
End Sub
Private Sub hentVareData(fraRække, TilRække)
    If fraRække <= antalVareData And fraRække >= 2 Then
        For kolonne = 1 To 5
            ark1.Cells(TilRække, kolonne + 1) = ark2.Cells(fraRække, kolonne)
        Next kolonne
    End If
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