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
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.