Avatar billede Claus Mester
12. februar 2013 - 08:29 Der er 7 kommentarer og
1 løsning

VBA excel: Sammenlign celleindhold med combobox

I rækkerne under kolonne A, har jeg et antal celler med indhold. Derudover har jeg en userform med en combExp (combobox).

Når formen initialiseres, tjekkes i combobox om teksten i cellen findes i combobox. Hvis den gør, skal combobox listindex sættes til det nummer hvor teksten er lig med hinanden. Hvis ikke, skal range A1 vælges.

Jeg har indtil nu denne kode, som ikke virker optimalt:

For x = 0 To combExp.ListCount - 1
If combExp.List(x) = ActiveCell.Value Then
  combExp.ListIndex = x
Else
  combExp.ListIndex = 0
End If
Next

Problemet er, at uanset hvad, sættes combexp.listindex til 0.

Nogen der kan hjælpe mig videre?
Avatar billede supertekst Ekspert
12. februar 2013 - 09:27 #1
Prøv at tilføje:
Exit for

efter:
combExp.ListIndex = x
Avatar billede Claus Mester
12. februar 2013 - 11:31 #2
Nope, det virker ikke. Listindex blir sat til 0.

Skal lige for god ordens skyld sige, at jeg selvfølgelig har udfyldt combo med elementer, så det er ikke fordi der ingen elementer er.
Avatar billede supertekst Ekspert
12. februar 2013 - 14:28 #3
Ok - du er velkommen til at sende filen - @-adresse under min profil.
Avatar billede Claus Mester
14. februar 2013 - 19:48 #4
Tak, men filen indeholder, pt, stort set ikke mere end det vi har diskuteret her. Så der er såmænd ikke så meget at sende.
Avatar billede kabbak Professor
18. februar 2013 - 11:47 #5
For x = 0 To combExp.ListCount - 1
If combExp.List(x) = ActiveCell.Value Then
  combExp.ListIndex = x
  Exit For
End If
Next
combExp.ListIndex = 0
Avatar billede Claus Mester
18. februar 2013 - 15:13 #6
@kabbak: din løsning svarer til kommentar #1 og virker desværre ikke. Listindex sættes til 0.

Tilgengæld har jeg løst udfordringen i mellemtiden med den her:

        For x = 0 To combExp.ListCount - 1
            If combExp.List(x) = ActiveCell.Value Then
                combExp.ListIndex = x
                Exit Sub
            End If
        Next

        combExp.ListIndex = 0

Hvorfor dén virker, og ikke Exit for, har jeg ingen anelse om.

Men smid et svar supertekst, jeg syntes du skal have point for din indsats, hvis du vil have dem.
Avatar billede supertekst Ekspert
18. februar 2013 - 16:04 #7
Ok- forklaringen er:

Exit Sub - så undgår du at "combExp.ListIndex = 0" udføres da Sub forlades.

Exit For - her forlades kun For-løkken - men denne "combExp.ListIndex = 0" udføres..
Avatar billede Claus Mester
19. februar 2013 - 16:24 #8
#7: Det tænkte jeg nok. Tak for hjælpen.
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
Kurser inden for grundlæggende programmering

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