Avatar billede alen32 Nybegynder
15. januar 2008 - 18:23 Der er 12 kommentarer og
1 løsning

Udfylde listbox med forskellige områder

Jeg har et comboboks og en listbox på mit ark. Når brugeren vælger en objekt i comboboks udfyldes listbox. Jeg vil gerne have at når brugeren vælger en objekt i combobox så udfyldes listbox med data der står i række 2 og startende med celle b2 og fortsætter så længe der er data i række 2.




Private Sub ComboBox1_Click()

Select Case ComboBox1.Value
  Case "Omega"
      ListBox1.ListFillRange = "Ark1!q3:q27"
  Case "Alfa"
      ListBox1.ListFillRange = "Ark1!P3:P17"
    Case "Delta"
      ListBox1.ListFillRange = "Ark1!S3:S20"
    Case "Gamma"
      ListBox1.ListFillRange = "Ark1!o3:o25"
    Case "Zeta"
      ListBox1.ListFillRange = "Ark1!r3:r20"


End Select

End Sub
Avatar billede excelent Ekspert
15. januar 2008 - 20:22 #1
Private Sub ComboBox1_Click()
Select Case ComboBox1.Value
  Case "Omega"
      ListBox1.ListFillRange = "Ark1!q3:q" & Cells(65500, "q").End(xlUp).Row
  Case "Alfa"
      ListBox1.ListFillRange = "Ark1!P3:P17" & Cells(65500, "p").End(xlUp).Row
    Case "Delta"
      ListBox1.ListFillRange = "Ark1!S3:S20" & Cells(65500, "s").End(xlUp).Row
    Case "Gamma"
      ListBox1.ListFillRange = "Ark1!o3:o25" & Cells(65500, "o").End(xlUp).Row
    Case "Zeta"
      ListBox1.ListFillRange = "Ark1!r3:r20" & Cells(65500, "r").End(xlUp).Row
End Select
End Sub
Avatar billede excelent Ekspert
15. januar 2008 - 20:25 #2
glemte lige noget, brug denne

Private Sub ComboBox1_Click()
Select Case ComboBox1.Value
  Case "Omega"
      ListBox1.ListFillRange = "Ark1!q3:q" & Cells(65500, "q").End(xlUp).Row
  Case "Alfa"
      ListBox1.ListFillRange = "Ark1!P3:P" & Cells(65500, "p").End(xlUp).Row
    Case "Delta"
      ListBox1.ListFillRange = "Ark1!S3:S" & Cells(65500, "s").End(xlUp).Row
    Case "Gamma"
      ListBox1.ListFillRange = "Ark1!o3:o" & Cells(65500, "o").End(xlUp).Row
    Case "Zeta"
      ListBox1.ListFillRange = "Ark1!r3:r" & Cells(65500, "r").End(xlUp).Row
End Select
End Sub
Avatar billede alen32 Nybegynder
15. januar 2008 - 21:47 #3
Den virke ikke.
Den indsætter værdien fra kolonne q, men jeg vil have at den skal indsætte værdier fra række 3 med start i celle q3.
Avatar billede excelent Ekspert
15. januar 2008 - 21:51 #4
Mener du at hvis Case Omega, så skal værdierne fra
q3, r3, s3, t3 u3 osv. osv indsættes i Listbox1 ?
Avatar billede alen32 Nybegynder
15. januar 2008 - 21:59 #5
ja!
Avatar billede excelent Ekspert
16. januar 2008 - 00:55 #6
Private Sub ComboBox1_Click()
Dim MyArray(200)

Select Case ComboBox1.Value
  Case "Omega"
For t = Columns("q").Column To Cells(3, 255).End(xlToLeft).Column
MyArray(t - Columns("q").Column) = Cells(3, t)
Next
ListBox1.List() = MyArray
Case "Alfa"
For t = Columns("p").Column To Cells(3, 255).End(xlToLeft).Column
MyArray(t - Columns("p").Column) = Cells(3, t)
Next
ListBox1.List() = MyArray
    Case "Delta"
For t = Columns("s").Column To Cells(3, 255).End(xlToLeft).Column
MyArray(t - Columns("s").Column) = Cells(3, t)
Next
ListBox1.List() = MyArray
    Case "Gamma"
For t = Columns("o").Column To Cells(3, 255).End(xlToLeft).Column
MyArray(t - Columns("o").Column) = Cells(3, t)
Next
ListBox1.List() = MyArray
    Case "Zeta"
For t = Columns("r").Column To Cells(3, 255).End(xlToLeft).Column
MyArray(t - Columns("r").Column) = Cells(3, t)
Next
ListBox1.List() = MyArray
End Select

End Sub
Avatar billede excelent Ekspert
16. januar 2008 - 08:38 #7
Har finpudset koden lidt, men er kun sikker på Case Omega
ved ikke hvilket område der skal vælges ved øvrige valg

Private Sub ComboBox1_Click()
Dim MyArray()

Select Case ComboBox1.Value
Case "Omega"
    c = Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("q").Column)
    For t = Columns("q").Column To c
      MyArray(t - Columns("q").Column) = Cells(3, t)
    Next
  ListBox1.List() = MyArray

Case "Alfa"
    c = Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("p").Column)
    For t = Columns("p").Column To c
      MyArray(t - Columns("p").Column) = Cells(3, t)
    Next
  ListBox1.List() = MyArray
   
Case "Delta"
    c = Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("s").Column)
    For t = Columns("s").Column To c
      MyArray(t - Columns("s").Column) = Cells(3, t)
    Next
  ListBox1.List() = MyArray
   
Case "Gamma"
    c = Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("o").Column)
    For t = Columns("o").Column To Cells(3, 255).End(xlToLeft).Column
      MyArray(t - Columns("o").Column) = Cells(3, t)
    Next
  ListBox1.List() = MyArray
   
Case "Zeta"
    c = Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("r").Column)
    For t = Columns("r").Column To Cells(3, 255).End(xlToLeft).Column
      MyArray(t - Columns("r").Column) = Cells(3, t)
    Next
  ListBox1.List() = MyArray
End Select

End Sub
Avatar billede alen32 Nybegynder
16. januar 2008 - 08:53 #8
Der et problem min listbox er på ark2 og data som skal indsættes er på forskellige ark -Ark1 til Ark5.
Avatar billede excelent Ekspert
16. januar 2008 - 09:58 #9
nå ok jamen så list lige ark og område for alle værdierne
så kikker jeg på det når jeg får tid
Avatar billede alen32 Nybegynder
16. januar 2008 - 10:46 #10
Område er rigtige, men ark er et problem.
Case omega  ark vj
Case alfa  ark tt
case Delta ark  qq
Case Gamma ark  3
Case Zeta  ark  5
Avatar billede excelent Ekspert
16. januar 2008 - 13:27 #11
hmm er det så ark vj eller blot vj ? ret evt. linie 3-5

Private Sub ComboBox1_Click()
Dim MyArray()
Set sh1 = Sheets("vj"): Set sh2 = Sheets("tt")
Set sh3 = Sheets("qq")
Set sh4 = Sheets("3"): Set sh5 = Sheets("5")
Select Case ComboBox1.Value
Case "Omega"
    c = sh1.Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("q").Column)
    For t = Columns("q").Column To c
      MyArray(t - Columns("q").Column) = sh1.Cells(3, t)
    Next
  ListBox1.List() = MyArray

Case "Alfa"
    c = sh2.Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("p").Column)
    For t = Columns("p").Column To c
      MyArray(t - Columns("p").Column) = sh2.Cells(3, t)
    Next
  ListBox1.List() = MyArray
   
Case "Delta"
    c = sh3.Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("s").Column)
    For t = Columns("s").Column To c
      MyArray(t - Columns("s").Column) = sh3.Cells(3, t)
    Next
  ListBox1.List() = MyArray
   
Case "Gamma"
    c = sh4.Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("o").Column)
    For t = Columns("o").Column To c
      MyArray(t - Columns("o").Column) = sh4.Cells(3, t)
    Next
  ListBox1.List() = MyArray
   
Case "Zeta"
    c = sh5.Cells(3, 255).End(xlToLeft).Column
    ReDim MyArray(c - Columns("r").Column)
    For t = Columns("r").Column To c
      MyArray(t - Columns("r").Column) = sh5.Cells(3, t)
    Next
  ListBox1.List() = MyArray
End Select

End Sub
Avatar billede alen32 Nybegynder
16. januar 2008 - 18:30 #12
Det virker!
Jeg kan bare sige mange,mange tak! og send et svar.
Avatar billede excelent Ekspert
16. januar 2008 - 18:52 #13
velbekom
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