Avatar billede peterkrog Nybegynder
30. december 2010 - 03:38 Der er 5 kommentarer og
1 løsning

Opslag fra andet faneblad

Hej derude
Håber på lidt hjælp her.

Jeg har et regneark med to faneblade "Dataark" og "Log"

Jeg ønsker at arket "Dataark" skal fungere som opslagark til "Log" arket.

Datarket indeholder 6 kolonner med ca 600 rækker.

Logarket skal så når jeg begynder at skrive i første kolonne prøve at genkende teksten fra først kolonne i dataarket, og herefter overfører alle 6 kolonner til Logarket.

Har leget lidt med OPSLAG og LOPSLAG kan ikke helt få det til at virke :/

Godt nytår til alle :)

VH Peter
Avatar billede supertekst Ekspert
30. december 2010 - 09:14 #1
Det burde kunne lade sig gøre via VBA - hvis det er ok?
Avatar billede peterkrog Nybegynder
30. december 2010 - 11:18 #2
VBA ville være helt okay.
Avatar billede supertekst Ekspert
30. december 2010 - 11:30 #3
Ok - du skal være velkommen til evt. at sende en lille model - så skal forsøge af lægge VBA-koden ind.

@-adresse under profil.
Avatar billede peterkrog Nybegynder
30. december 2010 - 11:40 #4
Det gør jeg den kommer lige iaften. På forhånd mange tak.
Avatar billede peterkrog Nybegynder
31. december 2010 - 08:24 #5
Det spiller bare :) du skal have rigtig mange tak. smider du lige et svar :) godt nytår.
Avatar billede supertekst Ekspert
31. december 2010 - 09:24 #6
Fint - selv tak og også godt nytår til herfra..

..et svar med VBA-koden:

Dim arkData As Worksheet
Dim ændretRække As Long, flag As Boolean
Private Function søgSkib(skibsNavn)
    Set arkData = ActiveWorkbook.Sheets("Dataark")
   
    With arkData.Range("A2:A65000")
        Set c = .Find(skibsNavn, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            søgSkib = c.Row
        Else
            søgSkib = 0
        End If
    End With
End Function
Rem +++++++++++++++++++++++++++++++++++++++++++++++
Private Sub Worksheet_Change(ByVal Target As Range)
    If flag = False Then
        If Target.Column = 2 Then
            ændretRække = Target.Row
        Else
            ændretRække = 0
        End If
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim dataRække As Long
  If flag = False Then
        If ændretRække > 0 Then
            flag = True
            dataRække = søgSkib(UCase(Range("B" & ændretRække).Value))
           
            If dataRække > 0 Then
                With arkData
                    .Range("A" & dataRække & ":G" & dataRække).Copy
                End With
               
                ActiveSheet.Range("B" & ændretRække).Select
                ActiveSheet.Paste
            End If
        End If
       
        Set arkData = Nothing
        Application.CutCopyMode = False
        ændretRække = 0
       
        flag = False
    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