31. januar 2009 - 00:15Der er
10 kommentarer og 1 løsning
opslag til UserForm
Hej Alle.
Jeg prøver igen, har endnu ikke fundet en løsning.
Jeg har en UserForm, hvor jeg gerne vil kunne tast et nummer i en tekstbox, hvorefter der laves et opslag i en anden fil,som returnere 3 værdier til label 1, 2 & 3. Dette må kunne lade sig gøre. Nogle der kan hjælpe?
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.
Hvilken form for opslag ? Kan det laves i et ark med et alm. LOPSLAG, så gør det i et ark som evt. kan skjules. Dette er lettest med den andel fil åben Herefter skulle det være rimeligt simpelt at styre dette opslag via en tekstboks på en userform
Det nemmeste, er at åbne den anden fil, i starten af koden og så indlæse dataområdet i en array variabel,derefter bruge den til at slå op i. For at den ikke skal læse området hver gang, kan man tjekke om arrayet er fyldt inden man spørger.
Public Sub auto_open() Call HentData UserForm1.Show End Sub
Public Sub HentData() Dim R As Long, CF As String, Datafil As String, DataArk As String Application.ScreenUpdating = False Datafil = "Opslag.xls" ' Filnavnet på opslagsfilen DataArk = "Data" ' Navnet på opslagsarket If Not WorkbookIsOpen(Datafil) Then Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Datafil Else Windows(Datafil).Activate End If R = Sheets(DataArk).Range("A65536").End(xlUp).Row OpslagsData = Sheets(DataArk).Range("A2:D" & R) ' Finder Data og læser dem ind i et Array ActiveWorkbook.Close False Application.ScreenUpdating = True End Sub
Public Function WorkbookIsOpen(wbname) As Boolean Dim x As Workbook On Error Resume Next Set x = Workbooks(wbname) If Err = 0 Then WorkbookIsOpen = True _ Else WorkbookIsOpen = False End Function
I en userform, med 3 labesl, en tekstboks og en kommandoknap, der er døbt CmdOK
Private Sub CmdOK_Click() Dim I As Long, FB As Boolean If IsEmpty(OpslagsData) Then Call HentData ' hvis ikke indlæst, så gøres det igen For I = 1 To UBound(OpslagsData) If OpslagsData(I, 1) = Val(Me.TextBox1) Then ' der bruges val til værdier, da en tekstboks afleverer tekst Me.Label1.Caption = OpslagsData(I, 2) Me.Label2.Caption = OpslagsData(I, 3) Me.Label3.Caption = OpslagsData(I, 4) FB = True Exit For End If Next If FB = False Then MsgBox "Nummeret er ikke fundet" Me.TextBox1.SetFocus ' sætter focus på tekstboksen Exit Sub End If End Sub
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.