Avatar billede hans01 Nybegynder
29. januar 2012 - 12:53 Der er 5 kommentarer og
1 løsning

en simpel if then statement

jeg er nybegynder i vba, jeg har oprettet en userform i excel 2010 med to combobokse, man vælger en liste i den første combo, som afhængig af valget skal fylde den anden ´combo boks

min kode ser sådan ud:

Private Sub UserForm_Initialize()
    Me.cboAnlag.AddItem "1"
    Me.cboAnlag.AddItem "2"
    Me.cboAnlag.AddItem "3"
    Me.cboAnlag.AddItem "4"
    Me.cboAnlag.AddItem "5"
    Me.cboAnlag.AddItem "6"
    Me.cboAnlag.AddItem "7"
   
    If cboAnlag.Value = "1" Then
    Me.Cbotype.AddItem "a"
   
    If cboAnlag.Value = "2" Then
    Me.Cbotype.AddItem "b"
   
    End If

hvad gør jeg forkert
Avatar billede cht22 Guru
29. januar 2012 - 13:11 #1
Du mangler enten at rette linjen:
If cboAnlag.Value = "2" Then
Til denne linje:
Else If cboAnlag.Value = "2" Then

eller også mangler der en:
End If
Mellem de to linjer:
Me.Cbotype.AddItem "a"
If cboAnlag.Value = "2" Then
Avatar billede claes57 Ekspert
29. januar 2012 - 13:24 #2
fejlen ligger et andet sted - når du starter formen er der ikke valgt noget i cboAnlag og derfor kan du ikke udfylde Cbotype.
Du skal have en rutine cboAnlag.onchange (eller noget i den stil), og der køre
  If cboAnlag.Value = "1" Then
    Me.Cbotype.AddItem "a"
   
    If cboAnlag.Value = "2" Then
    Me.Cbotype.AddItem "b"
som du bør omskrive til
Me.Cbotype.Clear
Select case cboAnlag.Value
case ="1"
    Me.Cbotype.AddItem "a"
case ="2"
    Me.Cbotype.AddItem "b"
end select

du skal først rydde den for indhold - ellers bliver den jo længere og længere - og derefter fylde 'nyt' indhold i.
Avatar billede kabbak Professor
29. januar 2012 - 15:14 #3
enig med claes57 ;-))
Avatar billede hans01 Nybegynder
30. januar 2012 - 17:47 #4
tak for svarene,har leget med alle jeres muligheder dog uden det virker, din onchange kunne jeg slet ikke få til at virke.

Nu ser min kode sådan ud:

If cboAnlag.Value = "1" Then
    End If
    Me.Cbotype.AddItem "a"
 
    Me.Cbotype.Clear
    Select Case cboAnlag.Value
    Case Is = "1"
    Me.Cbotype.AddItem "a"
    Case Is = "2"
    Me.Cbotype.AddItem "b"
    End Select


Hvad skal jeg gøre?
Avatar billede claes57 Ekspert
30. januar 2012 - 18:10 #5
i excel hedder det så OnAction  (onChange er javascript) - og det, du har i #4 er noget rod - drop det helt.

Private Sub cboAnlag_OnAction(en eller anden parameter her)
Me.Cbotype.Clear
Select case cboAnlag.Value
case is = "1"
    Me.Cbotype.AddItem "a"
case is = "2"
    Me.Cbotype.AddItem "b"
end select
end sub
Avatar billede hans01 Nybegynder
17. februar 2012 - 08:01 #6
lukker sp
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