I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Jeg har læst spørgsmålet og forstået det således, at du der hvor du har "Minliste", er der opstået tomme celler, muligvis ved at du evt. selv har slettet nogle data i cellerne, så du får disse tomme linier i din Combobox.
Jeg vil foreslå at du der hvor du har din "Minliste" foretager en sortering (stigende) af hele listen, herved får du i din Combobox kun tomme linier nederst på listen, og så må du assepterer disse tomme liner i comboboksen, - ellers skal du lave en VBA-kode som automatisk opdaterer "MinListe" hvis det kan lade sig gøre, - men det går nok ikke hvis din "Minliste" ikke er på et Ark for sig selv.
Alle numre fra listen står fra øverst i kolonne b, ark 1. Denne kolonne bliver fyldt ud ved indtastning via en anden userform således, at nye data bliver indsat i øverste linje(indskudt før "skrivning" af data). Dvs. at der altid er fyldt i hver linje fra oven af. Det, jeg ønsker, er, at der i listen i comboxen kun bliver medtaget data fra fyldte celler fra denne kolonne.
Kan du evt. bruge følgende VBA kode ... Koden ta´r p.t. ikke højde for eventuel sletning af en række med efterfølgende genindlæsning af listen ... men den kan laves.
Kig på det og lad høre ?
Sub FyldCombobox() Dim r As Integer
'tøb listen Me.ComboBox1.Clear
'tildel variablen r, rækkenummeret på sidste række indeholdende data r = ActiveSheet.Range("B65536").End(xlUp).Row
'for hver celle i området B1 til sidste celle med data For Each c In Range("B1:B" & r)
'tilføj celle værdi til listen Me.ComboBox1.AddItem c.Value
Jeg har testet dit forslag og synes den er perfekt, jeg har selv ved flere lejligheder lige manglet den måde og fylde en comboboks på, jeg fandt så på noget helt andet mere indviklet som er lidt svært og forklare Dit forslag vil jeg gerne bruge ved en senere lejlighed, -fint forslag.
Virker - lige det jeg søgte. Jeg har lige rettet det til, til mit brug. Kan man samtidig mrd, at man aktiverer userform, tjekke, at der er markeret en celle i den rigtige kolonne og evt. ark, hvis ikke, så en fejlmeddelse - ok - tilbage til kolonne b1 og evt. ark?
Private Sub UserForm_Activate() Dim r As Integer
'Vælg ark - her er "rækken" Sheets("ArkFindEnBilResultatFraFaktura").Select
'tøm listen Me.ComboBox1.Clear
'Indsæt værdi fra aktiv celle - den jeg peger på i ark inden kald af userform ComboBox1.Value = ActiveCell
'tildel variablen r, rækkenummeret på sidste række indeholdende data r = ActiveSheet.Range("B65536").End(xlUp).Row
'for hver celle i området B2 til sidste celle med data For Each c In Range("B2:B" & r)
'hvis cellen ikke er tom If c.Value <> "" Then
'tilføj celle værdi til listen Me.ComboBox1.AddItem c.Value
Som det første, når userformen aktiveres, vil du gerne tjekke om det "rigtige" ark samt en celle i kolonne B er valgt ... og er det, det ark du vælger med linien: Sheets("ArkFindEnBilResultatFraFaktura").Select ???
Prøv denne procedure ... Du skal dog selv lige ændre diverse "Sheet1" til navnet på dit ark.
Private Sub UserForm_Activate() Dim r As Integer Dim kolonne As String
'Vælg ark - her er "rækken" Sheets("Sheet1").Select
'tildel kolonne bogstavet for kolonnen med den aktive celle kolonne = Split(ActiveCell.Address, "$")(1)
'hvis det aktive arknavn er Sheet1 og den aktive celle er i kolonne B If ActiveSheet.Name = "Sheet1" And kolonne = "B" Then
'tøm listen Sheet1.ComboBox1.Clear
'Indsæt værdi fra aktiv celle - den jeg peger på i ark inden kald af userform Sheet1.ComboBox1.Value = ActiveCell
'tildel variablen r, rækkenummeret på sidste række indeholdende data r = ActiveSheet.Range("B65536").End(xlUp).Row
'for hver celle i området B2 til sidste celle med data For Each c In Range("B2:B" & r)
'hvis cellen ikke er tom If c.Value <> "" Then
'tilføj celle værdi til listen Sheet1.ComboBox1.AddItem c.Value
End If
Next c
Else
MsgBox "Den aktive celle er ikke i kolonne B", vbInformation
'vælg celle B1 på det aktive ark ActiveSheet.Range("B1").Select
'luk userform1 UserForm1.Hide
End If
End Sub
Slutteligt er jeg dog stadig i tvivl om linien: 'Indsæt værdi fra aktiv celle - den jeg peger på i ark inden kald af userform Sheet1.ComboBox1.Value = ActiveCell
er nødvendig, da listen jo bliver fyldet lidt længere nede i procedruen ? ... men det ved kun du :o)
Sheet1.ComboBox1.Clear til Me.ComboBox1.Clear og Sheet1.ComboBox1.Value = ActiveCell til Me.ComboBox1.Value = ActiveCell og Sheet1.ComboBox1.AddItem c.Value til Me.ComboBox1.AddItem c.Value
Hvad er tanken med linien: 'Indsæt værdi fra aktiv celle - den jeg peger på i ark inden kald af userform ComboBox1.Value = ActiveCell
Dette bruger jeg, hvis man peger på en bestemt celle inden userform åbnes, så vil den allerede stå i comboboxen samtidig med, hvis man fortryder, kan man vælge en fra listen i comboboxen. Jeg tror, jeg har det, som jeg behøver, ligger du et svar og tusind tak for hjælpen.
Godt at høre, at det fungerer efter hensigten. Og tak for info omkring linien, som jeg tvivlede på.
Hermed et svar fra mig.
Godt nytår, Med venlig hilsen Nicolai
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.