14. juli 2011 - 20:28Der er
1 kommentar og 1 løsning
Opslag i Userform
Hej,
Jeg har lavet en Userform i Excel, hvor jeg er støt på et lille problem. Jeg kunne godt tænke mig at lave et opslag i allerede indtastet data. Jeg kan dog ikke helt finde hoved og hale i at lave et opslag.
Her kommer der lidt informationer omkring arket/userform:
Den værdi der skal søges på står i TextBox1. I TextBox2 skal der, på baggrund af den værdi der er tastet ind i TextBox1, fremkomme en værdi. I dette tilfælde er det en dato. I TextBox3 skal der vises en talværdi.
De informationer som der skal søges på, befinder sig i arket "Køb". Dataområdet er A2:D4000.
Koden må meget gerne tilpasses således, at hver gang der bliver tastet i TextBox1 fremkommer der nye værdier i TextBox 2 og 3.
Her kommer et lille eksempel:
I TextBox1 indtastet et bilagsnr. f.eks. 100, så skal der i TextBox2 fremkomme en dato (kolonne B) for hvornår bilaget er blevet bogført og i TextBox3 skal købsprisen vises (kolonne C). TextBox2 må gerne vise formatet "dd. mmmm åååå".
PS: Jeg er stadig relativ ny mht. koder, så bære over med mig.
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Kopier nedenstående kode ind i BeforeUpdate hændelsen bag din TextBox1. Når du skriver et bilagsnummer ind i TextBox1 og taster enter ... burde tilhørende dato og pris blive skrevet i henholdsvis TextBox2 og 3.
Det virker her ... under Win7 og i den engelske udgave af Office 2003.
Kode:
Dim counter As Integer 'tælle variabel til cellerne i kolonne A på arket Køb Dim curcell As Range 'den aktuelle celle i kolonne A på arket Køb
'slå skærmopdatering fra Application.ScreenUpdating = False
'for hver celle i kolonne A på arket Køb 'start i celle A2 For counter = 2 To Sheets("Køb").Range("A65536").End(xlUp).Row
'set curcell = den næste celle i kolonnen Set curcell = Worksheets("Køb").Cells(counter, 1)
'hvis den aktuelle celleværdi = værdien i testbox1 på userformen If curcell.Text = UserForm1.TextBox1.Text Then
'sæt textbox2 = værdien i cellen 1 til højre for den aktive celle UserForm1.TextBox2.Text = curcell.Offset(0, 1)
'sæt textbox3 = værdien i cellen 2 til højre for den aktive celle UserForm1.TextBox3.Text = curcell.Offset(0, 2)
'forlad proceduren Exit Sub
End If
'næste celle i kolonne A på arket Køb Next
'slå skærmopdatering til igen Application.ScreenUpdating = True
Hermed lige en tilføjelse ... jeg havde glemt formateringen af datoen i TextBox2
Kopier nedenstående ind som tidligere:
Dim counter As Integer 'tælle variabel til cellerne i kolonne A på arket Køb Dim curcell As Range 'den aktuelle celle i kolonne A på arket Køb
'slå skærmopdatering fra Application.ScreenUpdating = False
'for hver celle i kolonne A på arket Køb 'start i celle A2 For counter = 2 To Sheets("Køb").Range("A65536").End(xlUp).Row
'set curcell = den næste celle i kolonnen Set curcell = Worksheets("Køb").Cells(counter, 1)
'hvis den aktuelle celleværdi = værdien i testbox1 på userformen If curcell.Text = UserForm1.TextBox1.Text Then
'sæt textbox2 = værdien i cellen 1 til højre for den aktive celle 'formater værdien således: "dd. mmmm yyyy" UserForm1.TextBox2.Text = Format(curcell.Offset(0, 1), "dd. mmmm yyyy")
'sæt textbox3 = værdien i cellen 2 til højre for den aktive celle UserForm1.TextBox3.Text = curcell.Offset(0, 2)
'forlad proceduren Exit Sub
End If
'næste celle i kolonne A på arket Køb Next
'slå skærmopdatering til igen Application.ScreenUpdating = True
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.