Jeg har lavet en userform, hvor jeg med nogle bokse skal finde frem til en given råvare fra en materiale matrix.
Her vil jeg så gerne kunne benytte en filtrering lig 'filter' funktionen som findes i EXCEL. Jeg vælger udfra 3 input - f.eks.: Type, Farve og Tykkelse.
Eksempel - først vælger jeg råvare type (f.eks. 20 forsk.linjer), så vælger jeg farve (reducerer til f.eks. 5 linjer) og til sidst tykkelse (resulterer i den specifikke linje).
Min samlede matrix indeholder f.eks. 200 linjer. Men mit første felt skal kun indeholde en liste over kolonnen 'Type' i min matrix (f.eks. 10 forskellige muligheder). Mit næste felt skal så indeholde valgmulighederne i kolonnen 'Farve', men kun udfra de muligheder der i de 10 linjer. Mit sidste felt vil så vise mulighederne i kolonnen 'Tykkelse', som måske er 4 linjer.
Jeg håber at mit problem er beskrevet tydeligt nok, og ser frem til at høre fra et af oraklerne i dette forum :)
ved ikke hvor meget du kender til vba, så det er ikke sikkert at dette giver mening.
man her vælger du først indhold i box 1 så 2, kun udvalg fra box 1 osv.
Dim mycol As New Collection Private Sub ComboBox1_Change()
Dim list As Variant list = Sheets("ark3").Range("a1").CurrentRegion ComboBox2.Clear ComboBox3.Clear For x = 2 To UBound(list) If ComboBox1 = list(x, 1) Then Dim navn As String navn = list(x, 2) If kontrol(navn) Then ComboBox2.AddItem navn End If End If Next x
End Sub Private Sub ComboBox2_Change()
Dim list As Variant list = Sheets("ark3").Range("a1").CurrentRegion ComboBox3.Clear For x = 2 To UBound(list) If ComboBox2 = CStr(list(x, 2)) Then Dim navn As String navn = list(x, 3) If kontrol(navn) Then ComboBox3.AddItem navn End If End If Next x
End Sub
Private Sub UserForm_Initialize() Dim list As Variant list = Sheets("ark3").Range("a1").CurrentRegion
For x = 2 To UBound(list) Dim navn As String navn = list(x, 1) If kontrol(navn) Then ComboBox1.AddItem navn End If Next x
End Sub
Function kontrol(navn As String) As Boolean On Error GoTo fejl navn = Trim(navn) navn = StrConv(navn, vbProperCase)
mycol.Add navn, navn kontrol = True fejl: If Err.Number <> 0 Then kontrol = False End Function
Jeg har kun lidt erfaring i VBA, så jeg forstår lidt af kodningen. Men jeg får er fejl efter jeg har rettet noget af koden til. Den er ikke tilfreds med "If kontrol(navn) Then"....
Skal jeg her definere hvilket navn den kan finde i listen?
Antal mulige valg er pt. som følger: I ComboBox1 er der 15 forsk. valg (type = celle C8-C174); ComboBox2 er der 54 forsk. valg (farve = celle D8-D174) og ComboBox3 er der 14 forsk. valg (tykkelse = F8-F174).
Kan du ud fra dette hjælpe mig i den rigtige retning?
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.