Avatar billede splokit Nybegynder
10. juli 2006 - 08:51 Der er 6 kommentarer og
1 løsning

Lopslag via VB igen

Kan man gøre som denne her kode bare den anden vej lodret
http://www.eksperten.dk/spm/718397
Avatar billede brynil Nybegynder
10. juli 2006 - 16:18 #1
Jeg synes det er lidt vanskeligt at regne ud, hvad du egentlig vil frem til. Men jeg har et forslag der bygger på de 2 filer du tidligere har nævnt. Værdierne bliver smidt i et ark med navnet Sheet1 i 1.xls. Sørg for at det er oprettet eller korriger i koden.

Ud fra det du har vist i dine filer, går jeg ud fra du kun søger på én dato ad gangen. Jeg anvender en fixed dato. Det kan du ændre på forskellig vis.

Sub Opslag3()

Dim arr(21, 1)
Dim arr2(9)
Dim i, o, p As Integer
p = 18 ' fixed dato

'------------------------------------
'indlæs værdier fra 2.xls for given dato (p)
Workbooks("2.xls").Activate
Sheets("Ark1").Activate

For i = 1 To 21
    arr(i - 1, 0) = Cells(p, i).Value
    arr(i - 1, 1) = Cells(1, i).Value
Next i

'------------------------------------

'indlæs opslagsværdier
Workbooks("1.xls").Activate
Sheets("Ark1").Activate
For i = 0 To 9
Cells(i + 4, 1).Select
    arr2(i) = Cells(i + 4, 1).Value
Next i

'------------------------------------

'søg i arr efter arr2-værdier
'når der kommer et hit, skriv værdien fra næste kolonne [= arr(o+1,0)]
'samt kolonnenavnet fra række 1 [arr(o,1)]

Sheets("Sheet1").Activate

For i = 0 To 9
p = i + 14 ' hvor skal der skrives på ark
    For o = 1 To 21
        If arr(o, 0) = arr2(i) Then
            Cells(p, 6).Value = arr(o + 1, 0)
            Cells(p, 5).Value = arr(o, 1)
            Exit For
      End If
    Next o
Next i

End Sub
Avatar billede splokit Nybegynder
11. juli 2006 - 08:04 #2
den har nogle af de ting den skal have...
Fixed dato er som sådan bare hvilken række den skal gøre det fra...
men hvis den laver et opslag på d1/1.xls for at se hvilken række den skal gøre resten ud fra.

næste, hvis der er tomme celler det hvor den søger efter værdien skal den ikke gøre noget og bare gå vider. F.eks hvis A9 er tom og der er et tomt felt på 2.xls retunere den som de andre.
Avatar billede splokit Nybegynder
12. juli 2006 - 06:21 #3
Fixed dato /række

på 2.xls A:A har jeg datoer, og på 1.xls/D1 en dato ud for den dato som er på 1.xls/di skal den finde den dato på 2.xls/A:A for at angive hvilken række Fixed er
Avatar billede brynil Nybegynder
12. juli 2006 - 17:17 #4
Sub Opslag3()
Dim arr(21, 1)
Dim arr2(9)
Dim i, o, p As Integer
Dim rng As Range
Dim FindDato As String

'------------------------------------
Workbooks("1.xls").Activate
Sheets("Ark1").Activate

FindDato = Cells(1, 4).Text

'------------------------------------
'find rækknr for dato
Workbooks("2.xls").Activate
Sheets("Ark1").Select

Set rng = Range("A:A")

For Each d1 In rng
    If d1.Text = FindDato Then
        p = d1.Row
        Exit For
    End If
Next d1

'------------------------------------
'indlæs værdier fra 2.xls for dato (p)
For i = 1 To 21
    arr(i - 1, 0) = Cells(p, i).Value
    arr(i - 1, 1) = Cells(1, i).Value
Next i

'------------------------------------

'indlæs opslagsværdier
Workbooks("1.xls").Activate
Sheets("Ark1").Activate
For i = 0 To 9
Cells(i + 4, 1).Select
    arr2(i) = Cells(i + 4, 1).Value
Next i

'------------------------------------

'søg i arr efter arr2-værdier
'når der kommer et hit, skriv værdien fra næste kolonne [= arr(o+1,0)]
'samt kolonnenavnet fra række 1 [arr(o,1)]

Sheets("Sheet1").Activate

For i = 0 To 9
p = i + 14 ' hvor skal der skrives på ark
    For o = 1 To 21
        If arr(o, 0) = arr2(i) Then
            Cells(p, 5).Value = arr(o + 1, 0)
            Cells(p, 4).Value = arr(o, 1)
            Exit For
      End If
    Next o
Next i

End Sub
Avatar billede splokit Nybegynder
14. juli 2006 - 06:17 #5
Run-time error '1004'
den laver application-defined or object-defined error
'------------------------------------
'indlæs værdier fra 2.xls for dato (p)
For i = 1 To 21
    **arr(i - 1, 0) = Cells(p, i).Value** ' på Ln 31
Avatar billede splokit Nybegynder
17. juli 2006 - 11:16 #6
brynil kom med et svar... den virker det er bare fordi jeg har den i en Private Sub
Avatar billede brynil Nybegynder
18. juli 2006 - 19:05 #7
Svar
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

IT-JOB