Avatar billede stry Nybegynder
19. august 2004 - 15:03 Der er 9 kommentarer og
2 løsninger

Egen "autocomplete"

Er der nogen der har en god ide til en "autocomplete" -funktion (lavet i VBA, forestiller jeg mig) som ved indtastning i en celle sammenligner med en liste eller en andet ark og foreslår ord som figurerer i listen.

På forhånd tak.
Avatar billede stry Nybegynder
19. august 2004 - 17:06 #1
Ingen bud? :/{
Avatar billede x-lars Novice
19. august 2004 - 18:50 #2
Kunne du bruge den funktion, der ligger i Excels datahåndtering?

Hvis din liste står i f.eks. IV1:IV100, og du vil have din bruger til at skrive i A1, stiller du dig i denne og vælger Data > Datavalidering og vælger Liste i dialogboksens Tillad-vindue. Herefter skal du pege på din liste.

I din A1 vil brugeren nu møde en dropbox, når han aktiverer cellen. Indtaster han noget i cellen, som ikke står i listen, får han en fejlmeddelelse. Klikker han på dropboxen, får han listen at vælge fra.

Det er ikke en autocomplete, men det lugter da lidt af fisk!
Avatar billede x-lars Novice
19. august 2004 - 18:51 #3
Listen skal dog ligge på det samme ark. Det er jo noget af en begrænsning.
Avatar billede bak Forsker
19. august 2004 - 19:37 #4
X-lars -> den behøver ikke ligge på samme ark.
Du skal blot navngive listen og herefter skrive dette navn i Liste: i datavalidering.
Avatar billede stry Nybegynder
20. august 2004 - 09:49 #5
X-lars>>
Som du selv siger er det jo ikke helt det jeg havde forestillet mig, men tak for forsøget.

Jeg søger altså stadig en "autocomplete" -funktion, på samme måde som man i Access får med en Komboboks hvor den efterhånden som man taster foreslår ord fra listen, men også kan indtaste værdier som ikke figurerer i listen (BegrænsTilListe sættes til Nej).
Avatar billede bak Forsker
20. august 2004 - 12:24 #6
Et forslag. Det er ikke perfekt, men det kan du måske selv ordne.

Opret en combox fra controlelementer på arket.
Nanvgiv din autocomleteliste Listen.

Indsæt denne makro i arkets eget kodemodul (højreklik på arkfanen og vælg Vis programkoder.
Ændre Range("E:E") til det område hvori du ønsker listen vist.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("E:E")) Is Nothing Then
    With ComboBox1
        .Top = Target.Top
        .Left = Target.Left
        .Width = Target.Width
        .Height = Target.Height + 3
        .LinkedCell = Target.Address
        .ListFillRange = [Listen].Address
        .Visible = True
        .Activate
    End With
    Else
        ComboBox1.Visible = False
End If
End Sub
Avatar billede stry Nybegynder
23. august 2004 - 16:18 #7
bak >>
Det er bestemt noget af det rigtige :-)

Men... hvordan refererer jeg til et område i en anden fil, jeg har prøvet med "C:\Documents and Settings\CS\Dokumenter\Datakilder\[SagsListe.xls]Ark1!$A$2:$C$99".Address, men det virker ikke.

Hvordan skal den skæres (det er jo nok noget med at jeg skal bruge ' i stedet for ") OG hvordan får jeg TAB til at virke så den springer videre til næste felt når jeg trykker TAB i comboboksen
Avatar billede bak Forsker
23. august 2004 - 21:20 #8
1. Du kan ikke referere til en lukket fil..
2. Ved jeg ikke (endnu)  :-)
Avatar billede stry Nybegynder
28. december 2005 - 12:24 #9
.
Avatar billede stry Nybegynder
07. juni 2006 - 16:02 #10
>>Bak
Den blev ikke helt løst, men hvis du lægger et svar, deler vi i porten, som påskønnelse af din indsats.
Avatar billede bak Forsker
07. juni 2006 - 23:51 #11
ok :-)
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