Avatar billede JZA Nybegynder
27. december 2012 - 22:05 Der er 2 kommentarer og
1 løsning

Beregn TextBox navn

Hej

Jeg har 20 textbokse med navne fra "txtTime1" til "txtTime20"
Når jeg taster en værdi i en af dem eks. "txtTime7", så vil jeg undersøge den foregående tekstboks og den efterfølgende tekstboks som indeholder en værdi som er forskellig fra "".
Det kan eksempelvis være at "txtTime6" og "txtTime5" er "" og at "txtTime4" indeholder en værdi. Her skal jeg have fat i værdien i "txtTime4".
Jeg forestiller mig noget i retning af følgende program start.

If Me.ActiveControl.Name Like "txtTime*" Then
        vStr = Right(Me.ActiveControl.Name, 2)
            If IsNumeric(vStr) Then
                IntNum = CInt(vStr) - 1
                NewTime = "txtTime" + IntNum
            Else
                vStr = Right(Me.ActiveControl.Name, 1)
                IntNum = CInt(vStr) - 1
                NewTime = "txtTime" + IntNum
            End If
End If

Herefter forestiller jeg mig noget i retning af en Do løkke hvor "NewTime" sættes lig Tekstboks nave "txtTime6", "txtTime5" og fortsætter til den rammer en "txtTimeX" med værdi.

Hvordan sætter jeg værdien af "NewTime" lig tekstboks nave og herefter finder dennes værdi?
Avatar billede supertekst Ekspert
27. december 2012 - 23:40 #1
Eks. - til inspiration - findTbVærdi() burde være i en funktion...

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    findTbMedVærdi CStr(Me.ActiveControl.Name)
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    findTbMedVærdi CStr(Me.ActiveControl.Name)
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    findTbMedVærdi CStr(Me.ActiveControl.Name)
End Sub
Private Sub findTbMedVærdi(TbNavn)
Dim nr As Integer, cc As Object, ccNavn As String, nyværdi
    værdi = Me.Controls(TbNavn).Value
    If værdi <> "" And InStr(TbNavn, "TextBox") = 1 Then
        nr = Mid(TbNavn, 8)
       
        nr = nr + 1
        ccNavn = "TextBox" & CStr(nr)      '
        Set cc = Me.Controls(ccNavn)
        nyværdi = cc.Value
        If nyværdi <> "" Then
            Stop
        End If
    End If
End Sub
Private Sub UserForm_activate()
    Me.TextBox3 = 333
End Sub
Avatar billede JZA Nybegynder
28. december 2012 - 13:49 #2
Det ser ud til at jeg kan bruge det. Tak for det.
Skriver du lige et svar så jeg kan give point?
Avatar billede supertekst Ekspert
28. december 2012 - 13:58 #3
Selv tak -
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
Kurser inden for grundlæggende programmering

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