Avatar billede Morten Nybegynder
03. januar 2003 - 13:46 Der er 20 kommentarer og
1 løsning

Værdier i combobox på baggrund af combobox

Hej...:

Combobox1 indeholder værdier fra range(A1:A10)
(værdierne i dette range optræder flere gange)

I combobox2 ønsker jeg så værdier fra range(B1:B10) men kun hvor værdien i combobox1 = range(A1:A10)...

Var det tydligt nok...

eks.:
A1  Æble    Inge Marie
A2  Æble    En anden sort
A3  Pære    Søde
A4  Pære    Hårde
A5  Bananer Gule

Combobox1 = Æbler
Combobox2 = inge marie
            En anden sort
Avatar billede Morten Nybegynder
03. januar 2003 - 13:47 #1
obs.. hvis A1 = æble så er det B1 = inge marie osv.....
Avatar billede Morten Nybegynder
03. januar 2003 - 13:48 #2
Nogen der kan give koden til combobox 2...

Det var egnetlig spørgsmålet...
Avatar billede martin_moth Mester
03. januar 2003 - 14:51 #3
Vis lige hvordan du "fylder" din combobox med værdier..? Det er altid nemmere at komme med en løsning, når man kan se noget kode, så løsningen ligner det du arbejder med og ikke bruger helt andre fremgangsmåder...
Avatar billede martin_moth Mester
03. januar 2003 - 14:52 #4
Og jeg fatter ikke helt hvad det er du vil..?
Avatar billede Morten Nybegynder
03. januar 2003 - 15:12 #5
Private Sub UserForm_Activate()
Dim col As New Collection
  Dim intRow As Integer
  intRow = 2
  On Error Resume Next
  Do Until IsEmpty(Cells(intRow, 1))
      col.Add Cells(intRow, 1), Cells(intRow, 1)
      If Err = 0 Then
        userform1.AddItem Cells(intRow, 1)
      Else
        Err.Clear
      End If
      intRow = intRow + 1
  Loop
  On Error GoTo 0
  userform1.ListIndex = 0
End Sub

sådan fylder jeg combobox1...


i combobox1 står der måske æbler

jeg vil så kun have de data fra kolonne b som i kolonne A hedder æbler og så have det vist i combobox 2...

Var det mere klart (tror jeg vist ikke :O)
Avatar billede martin_moth Mester
03. januar 2003 - 15:25 #6
Hmm... Ikke mere klart for mig ;o)

Prøv igen. Som jeg har forståt det har du:

Kolonne A med æbler osv.
Bolonne B med alt muligt andet.

I de rækker, hvor der i kolonne A står æbler, skal den kolonne B smides i combo2? Eller?
Avatar billede martin_moth Mester
03. januar 2003 - 15:26 #7
PS: i din kode springer du A1 over, selvom du har A1 med i dit eksempel...
Avatar billede martin_moth Mester
03. januar 2003 - 15:28 #8
PPS: i din kode refererer du til userform1, ikke combo1 - du har vel ikke kaldt din Combobox for userform1?
Avatar billede Morten Nybegynder
03. januar 2003 - 15:30 #9
Eksemplet har ikke noget med koden at gøre.. det er okay at A1 springes over

Og nej den hedde ikke userform - det var for overskuelighedens skyld... :O)

Nu vil jeg gå hjem og tænke noget mere over det...
og så håbe at der ligger et svar her på mandag???

Go' weekend...
Avatar billede Morten Nybegynder
03. januar 2003 - 15:32 #10
og nej ikke helt... og jo... hvis der står æbler i Combobox1 skal den smide kolonne B i Combobox2 - men kun hvor kolonneA=combobox1 (hvor der lige nu står Æbler....)

Get it now? :O)
Avatar billede martin_moth Mester
03. januar 2003 - 15:41 #11
Nå - uanset hvordan det er, kan du jo bare tjekke hvad en bestemt celle eller combobox indeholder, og så handle ud efter det:

Indholdet af fx. celle B3 findes sådan her:
  Cells(2, 3).Value

Indholdet af en combobox listitem nr 3 findes sådan her:
  UserForm1.ComboBox1.List(2) 'Index starter med 0

Så er det jo bare at bruge en If-sætning, og det kan jeg se af din kode, at det har du styr på :o)
Avatar billede martin_moth Mester
03. januar 2003 - 15:55 #12
Altså:

if UserForm1.ComboBox1.List(i) = "Æbler" then
  if Cells(1, j).Value = "Æbler" then
    UserForm1.ComboBox2.additem Cells(2, j).Value
  end if
end if

Og så bare loope over i og j så det passer til dit formål

PS: Har du omdøbt din combo til userform1 for OVERSKUELIGHEDENS skyld?
Det har præcis den modsatte effekt!!!!
Avatar billede martin_moth Mester
03. januar 2003 - 16:52 #13
Ahh - NU fatter jeg det!

Følgende løsning virker, hvis der
  i celle A1 - A10 står Æble, Banan eller Pærer
  i celle B1 - B10 står Et eller andet, fx. Ingrid Marie
  I combobox1 Står "Æbler", "Pærer" og "Bananer"

Private Sub ComboBox1_Change()
  Dim Række as Integer
  UserForm1.ComboBox2.Clear
  Select Case ComboBox1.List(ComboBox1.ListIndex)
 
  Case "Æbler"
    For Række = 1 To 10
      If Trim(Cells(Række, 1).Value) = "Æble" Then
        UserForm1.ComboBox2.AddItem Cells(Række, 2).Value
      End If
    Next Række
 
  Case "Pærer"
    For Række = 1 To 10
      If Trim(Cells(Række, 1).Value) = "Pære" Then
        UserForm1.ComboBox2.AddItem Cells(Række, 2).Value
      End If
    Next Række
 
  Case "Bananer"
    For Række = 1 To 10
      If Trim(Cells(Række, 1).Value) = "Banan" Then
        UserForm1.ComboBox2.AddItem Cells(Række, 2).Value
      End If
    Next Række
 
  End Select
  If UserForm1.ComboBox2.ListCount >= 0 Then UserForm1.ComboBox2.ListIndex = 0
End Sub

Der kikkes kun i de første 10 rækker - det kan du jo bare ændre. Jeg kan sende dig regnearket, så du kan se koden i praksis, hvis du ikke gider selv kopiere det - giv din email :o)
Avatar billede kabbak Professor
03. januar 2003 - 18:12 #14
Private Sub ComboBox1_Change()

  Dim Række As Integer
  UserForm1.ComboBox2.Clear
  Dim col1 As New Collection
  Dim intRow As Integer
  intRow = 2
  On Error Resume Next
  Do Until IsEmpty(Cells(intRow, 1))
  If Cells(intRow, 1) = ComboBox1.Text Then
    col1.Add Cells(intRow, 2), Cells(intRow, 2)
      If Err = 0 Then
        ComboBox2.AddItem Cells(intRow, 2)
      Else
      Err.Clear
    End If
    End If
      intRow = intRow + 1
 
  Loop
  On Error GoTo 0
  ComboBox2.ListIndex = 0

End Sub

Private Sub UserForm_Activate()
Dim col As New Collection
  Dim intRow As Integer
  intRow = 2
  On Error Resume Next
  Do Until IsEmpty(Cells(intRow, 1))
      col.Add Cells(intRow, 1), Cells(intRow, 1)
      If Err = 0 Then
        ComboBox1.AddItem Cells(intRow, 1)
      Else
        Err.Clear
      End If
      intRow = intRow + 1
  Loop
  On Error GoTo 0
  ComboBox1.ListIndex = 0
End Sub
Avatar billede kabbak Professor
03. januar 2003 - 18:13 #15
det skulle virke
Avatar billede martin_moth Mester
05. januar 2003 - 11:12 #16
Det gør mit forslag også :o)
Avatar billede kabbak Professor
05. januar 2003 - 14:53 #17
Martin moth > ja, men din udgave kan ikke bruges, hvis der tilføjes andre frugtnavne virker den ikke.
Avatar billede martin_moth Mester
05. januar 2003 - 21:10 #18
Det kan du da bare ændre, så den napper alle items i combobox1 og ikke kun "Æbler", "Pærer" og "Bananer" - det kan sagtens laves dynamisk!
Avatar billede martin_moth Mester
05. januar 2003 - 21:14 #19
I dit spørgsmål nævner du kun Æbler, Pærer og Bananer - derfor lavede jeg det således. Men somsagt - det kan du jo bare ændre :o)
Avatar billede Morten Nybegynder
07. januar 2003 - 09:46 #20
>Kabbak...

Den virker perfekt... var der noget galt med min kode?
Avatar billede martin_moth Mester
07. januar 2003 - 09:49 #21
Selv tak for ulejligheden ;o)
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