Avatar billede mikisoq Nybegynder
01. november 2008 - 13:40 Der er 4 kommentarer og
1 løsning

VBA - Hjælp til nybegynder ( Rnd )

Opgaven lyder: Der skal genereres 30 regnestykker fordelt på 5 henad og 6 nedad. Det skal være muligt at angive en øvre og nedre grænse i en InputBox og tallene i regnestykkerne skal derefter genereres som tilfældige heltal indenfor dette interval (begge inklusiv). Regnestykkerne må gerne sættes pænt op, så de er egnede til udskrift.

Regnestykkerne er plusstykker, hvor de to tal står ovenover hinanden og der er et + ud for det nederste tal. Det er meningen man så skal kunne indtaste svaret i cellen under de 2 tal, hvorefter de så skal rettes efterfølgende, men dertil er jeg slet ikke nået endnu. I første omgang er det at generere det ovenstående.

Håber der er en der kan give mig en hjælpende hånd.

På forhånd mange tak.
Avatar billede nissen2630 Novice
06. november 2008 - 23:49 #1
Her er lidt og lege med.

-------- Kode start --------------

Public Class results
    Public l1 As New Label()
    Public l2 As New Label()
    Public r1 As New TextBox()
End Class
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim x, y As Integer

        Dim R(30) As results
        Dim i As Integer

        i = 0

        For x = 0 To 4
            For y = 0 To 5
                R(i) = New results()
                R(i).l1 = New Label()
                R(i).l2 = New Label()
                R(i).r1 = New TextBox()

                R(i).l1.Text = Str(Int(Rnd() * 200))
                R(i).l2.Text = Str(Int(Rnd() * 200))
                R(i).l1.Height = 13
                R(i).l2.Height = 13
                R(i).l1.AutoSize = False
                R(i).l2.AutoSize = False
                R(i).l1.RightToLeft = Windows.Forms.RightToLeft.Yes
                R(i).l2.RightToLeft = Windows.Forms.RightToLeft.Yes
                R(i).l1.Location = New Point(10 + (x * 100), 10 + (y * 50))
                R(i).l2.Location = New Point(10 + (x * 100), 25 + (y * 50))

                R(i).r1.Width = 40
                R(i).r1.RightToLeft = Windows.Forms.RightToLeft.Yes
                R(i).r1.Location = New Point(70 + (x * 100), 40 + (y) * 50)
                Me.Controls.Add(R(i).l1)
                Me.Controls.Add(R(i).l2)
                Me.Controls.Add(R(i).r1)
                i += 1
            Next y
        Next x
    End Sub
End Class

------------- Kode slut -----------


Mvh
  Jesper
Avatar billede kabbak Professor
10. november 2008 - 16:25 #2
hvad med at gøre det færdig her http://www.eksperten.dk/spm/851183
Avatar billede mikisoq Nybegynder
11. november 2008 - 12:22 #3
Tak, det var blot i desperation, da jeg skulle bruge hurtig hjælp Kabbak.

Nissen du kan blot udbede dig dine points. Dit svar var også brugbart.
Avatar billede nissen2630 Novice
11. november 2008 - 18:39 #4
Ja med dem vil jeg da gerne have. Takker :-)

Mvh
  Jesper
Avatar billede mikisoq Nybegynder
11. november 2008 - 23:15 #5
Mange tak for hjælpen
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