21. september 2009 - 14:30Der er
7 kommentarer og 1 løsning
VBA: Hvordan redigere jeg rækker i en Userform??
Hej Allesammen
Lad mig starte med at sige tak for de gange jeg har anvendt jeres bidrag!
Jeg har en Userform hvor man kan registrere en masse informationer ved at indtaste i forskellige Textbox, listbox, calender, mm, og derved efterfølgende trykke på knappen submit. Dette bliver gemt i arket Database og række for række.
Men jeg vil gerne have muligheden for, via en Userform, at søge efter en af rækkerne, vha. ID nummer(Hver række har et unikt navn/nummer), og "åbne" denne række og redigere i denne rækkes koloner.
Lad os sætte et eksempel op som i kan anvende:
I min userform (Userform1) som jeg kan indtaste data til rækkerne har jeg følgende: 1 textbox name: textbox1 1 combobox name: combobox1 1 listbox name: Listbox 1 calender name: calender 1 label name: ID (denne tager indholdet af textbox1 og ligger et nummer til. Den har jeg selv lavet)
Disse kommer, efter tryk på "submit", ned i arket "Database".
Her kommer så opgaven:
Hvordan kan jeg søge efter ID og efterfølgende få vist rækkerne i "Database" i en ny Userform (Userform 2) i textbox'er, som kan redigeres og evt. slettes???
Det vigtiste for denne opgave er at kunne redigere i dataene i en userform. Søgefunktionen er kun et tillæg hvis det kan lade sig gøre.
[B]Jeg ved godt det er en svær opgave men håber på at kunne få hjælp. [/b]
--- Form til SØGNING & VALG --- Private Sub CommandButton1_Click() 'Søg ID Dim fundetRække As Integer, ræk As Long, søgFra As Long Rem slet evt. gl. indhold Me.ListBox1.Clear
søgFra = 1
For ræk = StartRæk To 65000 fundetRække = søgIdatabase(Me.TextBox1, "E" & CStr(søgFra) & ":E65000")
If fundetRække = 0 Then Exit For Else hentFundneTilListe fundetRække søgFra = fundetRække + 1 End If Next ræk End Sub Private Sub hentFundneTilListe(række) With ActiveWorkbook.Sheets("database") Me.ListBox1.AddItem .Range("A" & CStr(række)) For felt = 2 To 5 Me.ListBox1.List(Me.ListBox1.ListCount - 1, felt - 1) = .Cells(række, felt) Next
Rem gem det fundne række-nr Me.ListBox1.List(Me.ListBox1.ListCount - 1, felt - 1) = række End With End Sub Private Sub CommandButton2_Click() If Me.ListBox1.ListIndex <> -1 Then View2.Show End If End Sub Private Sub UserForm_activate() Rem slet evt. gl. indhold Me.ListBox1.Clear End Sub Private Function søgIdatabase(søgefter, område) With Sheets("database").Range(område) Set c = .Find(søgefter, LookIn:=xlValues, LookAt:=xlPart) If Not c Is Nothing Then søgIdatabase = c.Row Else søgIdatabase = 0 End If End With End Function
--- Form til AJF. --- Dim valgtRække As String Private Sub CommandButton1_Click() ajourførFelt Me.pa_re_txt, "A" End Sub Private Sub CommandButton2_Click() ajourførFelt Me.cl_re_txt, "B" End Sub Private Sub CommandButton3_Click() ajourførFelt Me.av_re_txt, "C" End Sub Private Sub CommandButton4_Click() ajourførFelt Me.carrier_re_txt, "K" End Sub Private Sub CommandButton5_Click() ajourførFelt Me.Covertype_re_txt, "L" End Sub Private Sub CommandButton6_Click() ajourførFelt Me.transtype_re_txt, "M" End Sub Private Sub CommandButton7_Click() ajourførFelt Me.amount_re_txt, "N" End Sub Private Sub ajourførFelt(feltVærdi, kolonne) ActiveWorkbook.Sheets("database").Range(kolonne & CStr(valgtRække)) = feltVærdi End Sub Private Sub UserForm_activate() valgtRække = View.ListBox1.List(View.ListBox1.ListIndex, 5)
Jeg har for, udfordringens skyld, lavet 12 rækker med samme oplysninger. Desværre viser søgefunktionen ikke alle 12 rækker men kun 8. Er der en grund til dette?
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.