23. oktober 2006 - 13:41Der 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
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
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
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.