Avatar billede splokit Nybegynder
23. oktober 2006 - 13:41 Der er 3 kommentarer og
1 løsning

Vb kode hent ud fra dato og kolonne

Hey denne kode. ser på "Main;J1" efter en værdi som den søger efter på "1;A:A" for ar få et rækkenr.
hvor den så ser og værdierne Fra "Main;a3:a62" er på rækken den fandt "J1" og for at finde en kolonne.
Hvis kolonnen og "Main;a3:a62" er ens skal den retunere Kolonnen værdi i række 1 og værdien under den søgte værdi og den til højre og under den til højre!`
det virker fint men nu skal den retunere fra "Main" til "1"

J1 for den række den skal retunere til.
"Main;a3:a62" værdien den skal finde på rækken.
Hvis den er der skal den indsætte værdien fra "Main;h3:i62"
Under den søgte værdi. så hvis den fandt værdien i "Aj200" på "1"
skal den indsætte værdien fra "Main;H:I" i Aj201:AK201.
Men kun hvis der er en værdi i "H:I" på main. så den ikke over skriver hvis der er en værdi i forvejen.

Hvis det giver mening og en løsning kan komme ud af det vil jeg blive meget glad..


Sub Get_driver1()
Dim arr(251, 3)
Dim arr2(60)
Dim i, o, p As Integer
Dim rng As Range
Dim FindDato As String
Sheets("Main").Activate
FindDato = Cells(1, 10).Text
Sheets("1").Select
Set rng = Range("A606:A620")
For Each v In rng
    If v.Text = FindDato Then
        p = v.Row
        Exit For
    End If
Next v
Set rng = Range("A606:A630")
For i = 1 To 251
    arr(i - 1, 0) = Cells(p, i).Value
    arr(i - 1, 1) = Cells(p + 1, i).Value
    arr(i - 1, 2) = Cells(p + 1, i + 1).Value
Next i
Sheets("Main").Activate
For i = 0 To 60
Cells(i + 3, 1).Select
    arr2(i) = Cells(i + 3, 1).Value
Next i
Sheets("Main").Activate
For i = 0 To 60
p = i + 3
    For o = 1 To 251
        If arr(o, 0) = arr2(i) Then
            Cells(p, 10).Value = arr(o + 1, 0)
            Cells(p, 4).Value = arr(o, 1)
            Cells(p, 8).Value = arr(o, 2)
            Cells(p, 9).Value = arr(o, 3)
            Exit For
      End If
    Next o
Next i
Application.ScreenUpdating = True
End Sub
Avatar billede splokit Nybegynder
23. oktober 2006 - 13:59 #1
Her er en fil så man kan se det.
http://www.splokit.com/excel/opslagtilbage.xls
På main A3:A62 er de værdi man bruger til at planlægge på "1;F16:DM1515"

under hvert bogstav fra toppen kan man skrive en af de værdier ud for den dag man vil Planlægge.
Avatar billede splokit Nybegynder
24. oktober 2006 - 12:47 #2
her gør den noget af det den skal men den sletter og vil ikke kun skrive i de celler jeg har tænkt

Sub Get_d()
Dim arr(251, 3)
Dim arr2(60)
Dim arr3(60)
Dim arr4(60)
Dim i, o, p, k As Integer
Dim rng As Range
Dim FindDato As String
Sheets("Main").Activate
FindDato = Cells(1, 10).Text
Sheets("1").Select
Set rng = Range("A606:A620")
For Each v In rng
    If v.Text = FindDato Then
        p = v.Row
        Exit For
    End If
Next v
Set rng = Range("A606:A630")
For k = 1 To 251
    arr(k - 1, 0) = Cells(p, k).Value
    arr(k - 1, 1) = Cells(p + 1, k).Value
    arr(k - 1, 2) = Cells(p + 1, k + 1).Value
Next k
Sheets("Main").Activate
For i = 0 To 60
    arr2(i) = Cells(i + 3, 1).Value
    arr3(i) = Cells(i + 3, 8).Value
    arr4(i) = Cells(i + 3, 9).Value
Next i
Sheets("1").Activate
For k = 1 To 251
    For i = 0 To 60
    If arr2(i) = arr(k - 1, 0) Then
            Cells(p + 1, k).Value = arr3(i)
            Cells(p + 1, k + 1).Value = arr4(i)
            Exit For
      End If
    Next i
Next k
Application.ScreenUpdating = True
End Sub
Avatar billede splokit Nybegynder
24. oktober 2006 - 13:33 #3
Såden Hvis nogle kan se en måde at gøre det nemmer skriv det....
Sub Get_d()
Dim arr(255, 3)
Dim arr2(59)
Dim arr3(59)
Dim arr4(59)
Dim i, o, p, k As Integer
Dim rng As Range
Dim FindDato As String
Sheets("Main").Activate
FindDato = Cells(1, 10).Text
Sheets("1").Select
Set rng = Range("A:A")
For Each v In rng
    If v.Text = FindDato Then
        p = v.Row
        Exit For
    End If
Next v
For k = 6 To 255
    arr(k - 1, 0) = Cells(p, k).Value
    arr(k - 1, 1) = Cells(p + 1, k).Value
    arr(k - 1, 2) = Cells(p + 1, k + 1).Value
Next k
Sheets("Main").Activate
For i = 0 To 59
    arr2(i) = Cells(i + 3, 1).Value
    arr3(i) = Cells(i + 3, 8).Value
    arr4(i) = Cells(i + 3, 9).Value
Next i
Sheets("1").Activate
For k = 6 To 255
    For i = 0 To 59
    j = i + 3
    If arr2(i) = arr(k - 1, 0) Then
        Cells(p + 1, k).Value = arr3(i)
    End If
    If arr2(i) = arr(k - 1, 0) Then
        Cells(p + 1, k + 1).Value = arr4(i)
           
    End If
  Next i
Next k
Application.ScreenUpdating = True
End Sub
Avatar billede splokit Nybegynder
24. oktober 2006 - 14:27 #4
virker...
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