Avatar billede Arnelau Juniormester
20. november 2017 - 15:59 Der er 6 kommentarer og
1 løsning

Find et navn

Jeg har søgt i flere dage nu. Mit problem er som følger:
I EXCEL ver. 2010 vil jeg gerne indtaste et navn på ark 1 og medens jeg taster vil systemet gerne slå op i ark 2 hvor jeg har en lang række naven. Når der er "match" begynder indtastningssiden at komme med bedste forslag.
Hvad er formlen eller macroen til det?

Håber en eller anden kan hjælpe mig.
Avatar billede finb Ekspert
20. november 2017 - 18:45 #1
Du kan bruge
DATA >> FORMULAR
som kan bruges til
både indtastning og
søgning, også med jokertegn.
Avatar billede Arnelau Juniormester
21. november 2017 - 13:54 #2
Det lyder helt rigtigt men den formular volder mig store kvaler. Kan der findes et eksempel et eller andet sted, som er forståeligt for en nybegynder, der er blevet udnævnt til praktikant.:-)
Avatar billede finb Ekspert
21. november 2017 - 18:11 #3
Find DATA-båndet øverst,
find FORMULAR i et af rullegardinerne
Avatar billede Jan Hansen Ekspert
21. november 2017 - 18:16 #4
du kan også prøve denne kode, ligges i ark1's kodemodul


Option Explicit
Dim Ark As Worksheet
Dim oleobj As OLEObject
Const sArk As String = "Ark2" ' Arket med navnene
Const sNavn As String = "$A$2" ' Adressen til cellen du skriver navn i


Private Sub NavnCombo_Change()
    Application.ScreenUpdating = False
    Set Ark = Sheets(sArk)
    With NavnCombo
        Dim Arr() As Variant, D1 As Object, cl, c
        Arr = Ark.Range("B2:B" & Ark.[B65000].End(xlUp).Row) 'Kolonne med navne, her B
        If NavnCombo <> "" And IsError(Application.Match(NavnCombo, Arr, 0)) Then
            Set D1 = CreateObject("Scripting.Dictionary")
            cl = UCase("*" & Replace(NavnCombo, " ", "*") & "*")
            For Each c In Arr
                If UCase(c) Like cl Then D1(c) = ""
            Next c
            .List = D1.keys
            .DropDown
        End If
        Range("A2").Value = .Value
    End With
    Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.ScreenUpdating = False
    Dim Arr() As Variant
    Dim Column As Range
    Set Ark = Sheets(sArk)
    If Target.Address = sNavn Then
        Set oleobj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1")
        With oleobj
            .Name = "NavnCombo"
            .Height = Target.Height
            .Width = Target.Width
            .Left = Target.Left
            .Top = Target.Top
            .Activate
        End With
    Else
        ActiveSheet.OLEObjects.Delete
    End If
    Application.ScreenUpdating = True
End Sub



Jan
Avatar billede Arnelau Juniormester
24. november 2017 - 13:30 #5
Jeg skrev at jeg er nybegynder, og det er rigtigt i denne forbindelse. Din kode til løsning af mit problem ser helt rigtig ud, og jeg forstår det meste af den. Men, men, men den giver mig fejl og det kan jeg ikke finde ud af.🌠 Du vil hjælpe mig utrolig meget h is du gide give mig det færdige resultat i excel regneark. Min mailadresse er llauridsen6@gmail.com (en adresse jeg kan undvære hvis den bliver misbrugt)
Du får Tusind tak på forhånd.
Arne
Avatar billede Jan Hansen Ekspert
24. november 2017 - 15:20 #6
dit spørgsmål ligner
https://www.computerworld.dk/eksperten/spm/1020462?k=8278028

jeg vil se om jeg sent i aften kan lave et eksempel til jer!!
Avatar billede Jan Hansen Ekspert
24. november 2017 - 22:05 #7
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