Avatar billede hubertus Seniormester
28. december 2006 - 17:09 Der er 6 kommentarer og
1 løsning

søgerutine i en userform

Jeg har følgende udfordring. En søgerutine i en userform, hvor der søges i kolonne B, som indeholder medlemsnumre. Samme nummer kan optræde flere gange. Rutinen er knyttet til en knap i userformen, der bevirker at kolonne b gennemløses efterhånden som der trykkes på knappen. Trykkes på knappen gem, så slettes felterne i userformen, og man skal kunne indtaste et nyt medlemsnummer. Det kan man imidlertid ikke fordi, firstflag er skiftet til true efter første gennemløb. Mao. jeg vil bevare funktionaliteten med at kunne gennemløbe kolonne b, således som den virker nu, men vil også kunne ændre medlemsnummer i en ny søgning (altså ændre firstflag til false igen.).
håber beskrivelsen er tydelig nok.

Private Sub cmdSøg_Click()
 
  Dim msg, svar As String
  Dim counter As Integer
  Dim rng As Range
 
  change = 0
 
  counter = optælAntalRækker(2)
 
    Set rng = Range("B6:B" & counter + 6)
   
    On Error GoTo NoMatch
   
  If FirstFlag = False Then
        Range("B6").Activate
        rng.Find(What:=TxtMedlem.Text, After:=ActiveCell, LookIn:=xlFormulas, _
                LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                MatchCase:=False, SearchFormat:=False).Activate
        FirstFlag = True
    Else
        rng.FindNext(After:=ActiveCell).Activate
    End If
   
    mlrow = Selection.Row

    read_data (mlrow)
 
    change = 1
 
    Exit Sub
   
NoMatch:
     
    svar = MsgBox(" Der blev ikke fundet et match" & vbCrLf & " skal den tilføjes ", vbYesNo)
   
    If svar = vbNo Then
      TxtMedlem = " "
      txtDato.SetFocus
      Exit Sub
    End If
   
    If svar = vbYes Then
        MsgBox "Udfyld felterne og tryk på Gem"
        change = 0
        txtDato.SetFocus
    End If
   
End Sub

mvh.
Hubertus
Avatar billede kabbak Professor
28. december 2006 - 19:06 #1
Prøv at sætte
FirstFlag = False
ind under koden til knappen gem
Avatar billede hubertus Seniormester
28. december 2006 - 19:49 #2
Den løsning har jeg også selv fundet frem til, men vil helst have løsningne i søgemodulet, af hensyn til senere brug i andre projekter.
Avatar billede kabbak Professor
28. december 2006 - 23:53 #3
Så sæt den under koden til txtDato

Private Sub txtDato_Change()
FirstFlag = False
End Sub
Avatar billede kabbak Professor
29. december 2006 - 00:11 #4
Næste forsøg

Uden for procedure
Dim OldMedlem As String

Private Sub cmdSøg_Click()

  Dim msg, svar As String
  Dim counter As Integer
  Dim rng As Range
If OldMedlem <> TxtMedlem.Text Then FirstFlag = False ' TILFØJET
  Change = 0

  counter = optælAntalRækker(2)

    Set rng = Range("B6:B" & counter + 6)
 
    On Error GoTo NoMatch
 
  If FirstFlag = False Then
        Range("B6").Activate
        rng.Find(What:=TxtMedlem.Text, After:=ActiveCell, LookIn:=xlFormulas, _
                LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                MatchCase:=False, SearchFormat:=False).Activate
        FirstFlag = True
        OldMedlem = TxtMedlem.Text ' TILFØJET
    Else
        rng.FindNext(After:=ActiveCell).Activate
    End If
 
    mlrow = Selection.Row

    read_data (mlrow)

    Change = 1

    Exit Sub
 
NoMatch:
   
    svar = MsgBox(" Der blev ikke fundet et match" & vbCrLf & " skal den tilføjes ", vbYesNo)
 
    If svar = vbNo Then
      TxtMedlem = " "
      txtDato.SetFocus
      Exit Sub
    End If
 
    If svar = vbYes Then
        MsgBox "Udfyld felterne og tryk på Gem"
        Change = 0
        txtDato.SetFocus
    End If
 
End Sub
Avatar billede kabbak Professor
12. marts 2007 - 23:38 #5
noget nyt ??
Avatar billede hubertus Seniormester
15. marts 2007 - 17:55 #6
Hej Kabbak
Nej egentlig ikke projektet blev af forskellige årsager skrottet, så det er blot dårlig stil, at jeg ikke har fået lukket spørgsmålet :o) Hvis ud lægger et svar, så skal jeg fluks få det klaret.  Tak for indsatsen!
mvh. Hubertus
Avatar billede kabbak Professor
15. marts 2007 - 19:16 #7
et svar ;-))
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester