Avatar billede Kriegbaum Juniormester
18. november 2017 - 21:35 Der er 4 kommentarer og
2 løsninger

Lopslag med Vba

Hej herinde :)

Jeg har nogle formler der ser sådan ud

=HVIS(ER.TOM(A6);"";LOPSLAG(A6;Ark3!B3:Ark3!C23;2;FALSK))
=HVIS(ER.TOM(A6);"";LOPSLAG(A6;Ark3!D3:Ark3!E23;2;FALSK))
=HVIS(ER.TOM(A6);"";LOPSLAG(A6;Ark3!F3:Ark3!G23;2;FALSK))
=HVIS(ER.TOM(A6);"";LOPSLAG(A6;Ark3!H3:Ark3!I23;2;FALSK))
=HVIS(ER.TOM(A6);"";LOPSLAG(A6;Ark3!J3:Ark3!K23;2;FALSK))

Kan man ikke få dem til at kører i vba i stedet?

mvh. Jesper
Avatar billede jens48 Ekspert
18. november 2017 - 23:27 #1
Det kan du med en makro i stil med nedenstående. Opslagsværdierne bliver sat ind i området B6:B10:

Sub SlaaOp()
If Range("A6") = "" Then
Else
Range("b6") = Application.VLookup(Range("A6"), Worksheets("Ark3").Range("B3:C23"), 2, False)
Range("b7") = Application.VLookup(Range("A6"), Worksheets("Ark3").Range("D3:E23"), 2, False)
Range("b8") = Application.VLookup(Range("A6"), Worksheets("Ark3").Range("F3:G23"), 2, False)
Range("b9") = Application.VLookup(Range("A6"), Worksheets("Ark3").Range("H3:I23"), 2, False)
Range("b10") = Application.VLookup(Range("A6"), Worksheets("Ark3").Range("J3:K23"), 2, False)
End If
End Sub
Avatar billede Kriegbaum Juniormester
18. november 2017 - 23:50 #2
Hej Jens

Mange tak. det virkede. Næsten :)
men med din hjælp kunne jeg gennemskue det :)

løsningen blev
Sub SlaaOp()
If Range("C6") = "" Then
Else
Range("C7") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("B3:C23"), 2, False)
Range("C8") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("D3:E23"), 2, False)
Range("C9") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("F3:G23"), 2, False)
Range("C10") = Application.VLookup(Range("c6"), Worksheets("Ark1").Range("H3:I23"), 2, False)
Range("C11") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("J3:K23"), 2, False)
End If
End Sub
Avatar billede Jan Hansen Ekspert
19. november 2017 - 00:39 #3
en lidt federe løsning, ej testet
den vil blanke c7-c11 hvis c6 er blank og den kører auto ved ændring i c6


Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C6")) Then
        If Range("C6") = "" Then
            Range("C7", "C11").Value = ""
        Else
            Range("C7") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("B3:C23"), 2, False)
            Range("C8") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("D3:E23"), 2, False)
            Range("C9") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("F3:G23"), 2, False)
            Range("C10") = Application.VLookup(Range("c6"), Worksheets("Ark1").Range("H3:I23"), 2, False)
            Range("C11") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("J3:K23"), 2, False)
        End If
    End If
End Sub


Jan
Avatar billede Jan Hansen Ekspert
19. november 2017 - 00:40 #4
Ups skal ligge i arkets kode
Avatar billede jens48 Ekspert
19. november 2017 - 01:19 #5
Ja, sletningen glemte jeg. Her er Jans kode efter den er testet:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6")) Is Nothing Then
        If Range("C6") = "" Then
            Range("C7:C11").Value = ""
        Else
            Range("C7") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("B3:C23"), 2, False)
            Range("C8") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("D3:E23"), 2, False)
            Range("C9") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("F3:G23"), 2, False)
            Range("C10") = Application.VLookup(Range("c6"), Worksheets("Ark1").Range("H3:I23"), 2, False)
            Range("C11") = Application.VLookup(Range("C6"), Worksheets("Ark1").Range("J3:K23"), 2, False)
        End If
    End If
End Sub
Avatar billede Kriegbaum Juniormester
19. november 2017 - 19:39 #6
Hej Jan og Jens

Det virker bare lige som det skal. og ja det er da en fed løsning :)
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

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