Jeg er ikke så godt til VBA koder, men håber at I kan hjælpe mig  Jeg har lavet en UserForm, hvor brugeren skal vælge to oplysninger på baggrund af information som fremgår af to ComboBox. Min udfordring er, at jeg gerne vil have, at når brugeren vælger en værdi i den første ComboBox, så skal værdierne i den anden ComboBox tilpasse sig. Jeg har forsøgt at lave et eksempel, som illustrere mit problem.
Excel filen består af to faner; Tracker og Oplysninger. I fanen Oplysninger, er der to kolonner, hvor der står en masse informationer i, som er dem der bliver vist i ComboBoxen.
Kolonne A: Står der en rækker forbrugsvare Kolonne B: Fremgår hovedgrupperne til forbrugsvarerne
Det kunne f.eks. være sådan: Kolonne A: (Informationer herfra vises i ComboBox2) Tandpasta Tandbørste Vantpinde Chips Chokolade
Kolonne B: (informationer herfra vises i ComboBox1) Personlig pleje Personlig pleje Personlig pleje Slik Slik
Jeg kunne godt tænke mig, at når man vælge f.eks. personlig pleje i ComboBox 1, så skal ComboBox2 kun vise de vare som vedr. personlig pleje, altså de første tre linjer under kolonne A.
Endvidere kunne jeg godt tænke mig, at Personlig pleje og Slik kun fremgår 1 gang under ComboBox1.
Håber at nogen kan hjælpe mig med denne lille opgave
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Private Sub UserForm_Initialize() Dim lCount As Long Dim rRange As Range Dim colGrupper As New Collection
'Antager at inputcellerne har tomme 'naboer i kolonne C og under nederste 'række. Set rRange = Range("A1").CurrentRegion
'Kopierer ranget til arrayet arIn = rRange.Value
On Error Resume Next
'Tilføjer varegrupper til vores collection. 'Ved også at tilføje som Key sikres, at 'hver gruppe kun optræder én gang. 'En key skal være af datatypen String. For lCount = 1 To UBound(arIn) colGrupper.Add CStr(arIn(lCount, 2)), CStr(arIn(lCount, 2)) Next
On Error GoTo 0
'Fyld varegrupperne i ComboBox1 With ComboBox1 For lCount = 1 To colGrupper.Count .AddItem colGrupper.Item(lCount) Next End With
'Øverste vare skrives i tekstfeltet, 'og derved køres Sub ComboBox1_Change ComboBox1.Text = arIn(1, 2)
Set rRange = Nothing Set colGrupper = Nothing
End Sub
Private Sub ComboBox1_Change() Dim lCount As Long
'Fyld varer i ComboBox2 With ComboBox2 .Clear For lCount = 1 To UBound(arIn) If CStr(arIn(lCount, 2)) = ComboBox1.Text Then .AddItem CStr(arIn(lCount, 1)) End If Next End With
End Sub
Synes godt om
Ny brugerNybegynder
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.