Avatar billede lillehans Nybegynder
02. maj 2006 - 11:41 Der er 8 kommentarer og
2 løsninger

Et spørgsmål om løkke

Jeg vil gerne have en løkke til at gennemføre nedenstående kode.
Koden skal finde tallene fra 1-4 i textbox 1-4. Når tallet er fundet skal det erstattes med teksten "Her var nr.: fx 1"
Jeg kan desværre ikke selv formulere løkken. Kan du?
Option Explicit

Private Sub Command1_Click()
On Error Resume Next
    If Text1.Text = 1 Then
    Text1.Text = "Her var nr.: 1"
    Else
   
    If Text2.Text = 1 Then
    Text2.Text = "Her var nr.: 1"
    Else
   
    If Text3.Text = 1 Then
    Text3.Text = "Her var nr.: 1"
    Else
   
    If Text4.Text = 1 Then
    Text4.Text = "Her var nr.: 1"
   
    End If
    End If
    End If
    End If
    If Text1.Text = 2 Then
    Text1.Text = "Her var nr.: 2"
   
End Sub

Private Sub Form_Load()
Text1.Text = 4
Text2.Text = 2
Text3.Text = 1
Text4.Text = 3
End Sub
Avatar billede lillehans Nybegynder
02. maj 2006 - 12:18 #1
Jeg kan se, at det kan klares med følgende: men er der ikke noget mere elegant?
Option Explicit

Private Sub Command1_Click()
On Error Resume Next
Dim tal As Integer
tal = 0
Do Until tal = Text1.Text
tal = tal + 1
Loop
Text1.Text = "Tallet var " & tal
tal = 0
Do Until tal = Text2.Text
tal = tal + 1
Loop
Text2.Text = "Tallet var " & tal
tal = 0
Do Until tal = Text3.Text
tal = tal + 1
Loop
Text3.Text = "Tallet var " & tal
End Sub
Avatar billede supertekst Ekspert
02. maj 2006 - 12:42 #2
Private Sub CommandButton1_Click()
Dim tbC As Control, f As Integer, p
    For f = 1 To 4
        Set tbC = Me.Controls("Textbox" + CStr(f))
        p = InStr("1234", tbC.Text)
        If p > 0 Then
            tbC.Text = "Her er " + CStr(p)
        End If
    Next f
End Sub
Avatar billede lillehans Nybegynder
02. maj 2006 - 13:56 #3
>Hej supertekst. Din kode virker. Men egentlig skal jeg bruge fra textbox fra 1 til 12, det glemte jeg bare at skríve, og når jeg ændrer din kode til:
For f = 1 To 12
        Set tbC = Me.Controls("Textbox" + CStr(f))
        p = InStr("123456789101112", tbC.Text)
får jeg 1 i den box hvor der skulle være 12 og ingen nr. 11 men nr. 12 i box 11.
Resten er rigtigt. Skal der en separator til, når tallene passerer 10? Gider du lige rette koden til?
Avatar billede supertekst Ekspert
02. maj 2006 - 14:24 #4
Private Sub CommandButton1_Click()
Dim tbC As Control, f As Integer, p
    For f = 1 To 12
        Set tbC = Me.Controls("Textbox" + CStr(f))
        p = tbC.Text
        If p <> "" Then
            tbC.Text = "Her er " + p
        End If
    Next f
End Sub
Avatar billede lillehans Nybegynder
02. maj 2006 - 15:01 #5
>Supertekst Når jeg kopierer din tekst over, får jeg slet ingen reaktion?
Avatar billede lillehans Nybegynder
02. maj 2006 - 15:02 #6
ASupertekst Altså når jeg klikker på commandbutton.
Avatar billede supertekst Ekspert
02. maj 2006 - 15:05 #7
Det kunne jo være at den ikke hedder CommandButton1

Jeg har haft det til at fungere :-)
Avatar billede lillehans Nybegynder
02. maj 2006 - 15:18 #8
>OK, jeg regnede ikke med at det var nødvendigt.
Men supertekst her er hele koden, så hvis du lige gider at kopiere den over til dig selv, kan du se, at der intet sker.

Option Explicit

Private Sub CommandButton1_Click()
Dim tbC As Control, f As Integer, p
    For f = 1 To 12
        Set tbC = Me.Controls("Textbox" + CStr(f))
        p = tbC.Text
        If p <> "" Then
            tbC.Text = "Her er " + p
        End If
    Next f
End Sub


Private Sub Form_Load()
textbox1 = 12
textbox2 = 11
textbox3 = 10
textbox4 = 9
textbox5 = 8
textbox6 = 7
textbox7 = 6
textbox8 = 5
textbox9 = 4
textbox10 = 3
textbox11 = 2
textbox12 = 1
End Sub
Avatar billede lillehans Nybegynder
02. maj 2006 - 17:02 #9
>supertekst Det fungerer alligevel. Jeg må have gjort noget forkert. Mange tak for hjælpen.
Avatar billede supertekst Ekspert
02. maj 2006 - 17:36 #10
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