Hvordan sætter jeg værdien i min ComboBox med to kolonner.
Jeg har fyldt comboen med et recordset, med primær nøgle i kolonne 1 og data i kolonne 2. Jeg viser kun kolonne 2, men vil gerne sætte værdien efter primær nøglen i kolonne 1.
Jeg har prøvet med følgende. ComboBox1.Value = 2 Og får følgende fejl. Run-time error '380' Invalid property value
Først loader jeg data ind i comboen fra en database. Så vil jeg gerne have sat værdien i comboen, så det er data svarende til den værdi jeg sætter der bliver vist.
Eksempel på data i comboen. Kolonne 1 Kolonne2 1 Hans 2 Birger 3 Ole
Så vil jeg godt sætte værdien af comboen til 2, så der står Birger i comboen.
Private Sub UserForm_Activate() v = "2" For x = 0 To ComboBox1.ListCount - 1 If ComboBox1.List(x) = v Then ComboBox1.ListIndex = x Exit For End If Next
Du kan afprøve følgende eksmepel: Opret i ("Ark1") følgende værdier: A1 = 1 B1 = Hans A2 = 1 B2 = Birger A3 = 3 B3 = Ole
Formater din ComboBox1 således:
BoundColumn = 1 ColumnCount = 2 ColumnWidths = 0 pt; 40 pt MatchRequited = True RowSource = A1:B3 (Hvis du vil refererer til et andet ark, end det aktive ark skal du indsætte arknavnet før cellereferencen, eksempelvis Ark2!A1:B3
Opret nedenstående kode til din ComboBox1_Change
Private Sub ComboBox1_Change() Dim varName As String, varIndex As Long, varFind As Long, varLoop As Long
If IsNumeric(Me.ComboBox1.Text) = False Then Exit Sub varIndex = ComboBox1.Text 'første gang vil dette være et tal varFind = Sheets("Ark1").Cells(1, 1).Value Do Until varFind = varIndex varFind = Sheets("Ark1").Cells(1, 1).Offset(varLoop, 0).Value varLoop = varLoop + 1 Loop varName = Sheets("Ark1").Cells(1, 1).Offset(varLoop, 1).Value ComboBox1.Text = varName End Sub
Med ovenstående kode kan du nu indtaste et tal i Kombinationsboksen. Det indtastede tal søges der efter i arket med værdier. Når tallet findes i kolonne A, vil den tilhørende tekst i kolonne B blive sat ind i Kombinationsboksen.
Da BoundColumn = 1 og MatchRequired = True vil en tekstindsættelse blive afvist, derfor linjen med If Isnumeric(.......
Alle data i kolonne 1 havde et mellemrum foran. Jeg har nu trimmet alle data i kolonne 1 og bruger koden.
ComboBox1 = 2
Og det virker. Tak for jeres indsats.
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.