Avatar billede fjensen111 Nybegynder
15. december 2003 - 12:48 Der er 18 kommentarer og
2 løsninger

Tal til banko

Hvis jeg nu skal finde nogle tal til en bankospil. Så skal jeg finde 20 tilfældige tal imellem 1 og 90. Jeg vil gerne have de 20 tal til at stå under hinanden, for eksempel i kolonne a fra celle a1-a20. Der må selvfølgelig ikke være gengangere. Kan det lade sig gøre.
Avatar billede kabbak Professor
15. december 2003 - 12:58 #1
hvis du kan lid vba selv så se her.

http://tommy.bak.homepage.dk/lotteri.xls
Avatar billede fjensen111 Nybegynder
15. december 2003 - 13:00 #2
det kan jeg ikke
Avatar billede kabbak Professor
15. december 2003 - 13:02 #3
Hvis ikke der er andre der svarer, kan jeg lave en i aften.

Kabbak
15. december 2003 - 13:20 #4
Du kan generere tilfældige tal med SLUMP(). Den genererer tilfældige tal mellem 0 og 1; men med lidt yderligere beregninger bør funktionen kunne anvendes.

Prøv med:
=HELTAL(SLUMP()*(90-1)+1)
hvor 1 står for laveste værdi, 90 højeste værdi.
Sæt beregningen til manuel, da tallene ellers vil skifte ved hver genberegning.
Avatar billede laurbjerg Nybegynder
15. december 2003 - 13:36 #5
> kabbak

er med på en lytter !
Avatar billede jkrons Professor
15. december 2003 - 13:45 #6
Problemet med slump() er at den ikke garanterer at det samme tal ikke vælges to gange og det går jo ikke i Bingo :-)

En alternativ løsning er at lave to kolonner. I A-kolonnen har du Formlen =Slump() i cellerne A1 til A90. I B-kolonnen har du så tallene 1 til 90. Nu sorter du de to kolonner med udgangspunkt i A-kolonnen. Så har du alel tal mellem 1 og 90 fordelt i tilfædlig orden. De 20 øverste tal kan så være dem, du skal bruge.
Avatar billede laurbjerg Nybegynder
15. december 2003 - 14:09 #7
>kabbak

Den begrænsning der ligger i celle "B4" antal tal, hvordan udvider man den til 90 istedet for 10 ?
Avatar billede bak Forsker
15. december 2003 - 14:16 #8
Jeg har modificeret den lidt:

http://tommy.bak.homepage.dk/Banko.xls
Avatar billede kabbak Professor
15. december 2003 - 14:20 #9
Jeg håbede også på at du viste dig, bak
Avatar billede jkrons Professor
15. december 2003 - 14:23 #10
bak-> Fikst :-)
Avatar billede jkrons Professor
15. december 2003 - 14:45 #11
bak->Tilføj et ark2, med tallene fra 1-90 placeret i 10 kolonner og 9 rækker.

Suppler din kode med nedenstående. Så har du også et "regnskabsark", hvor du kan se(i nummerorden), hvilke tal, der er udtrukket, når der siges bingo :-)

Public x As Variant
Sub nyt_spil()
Range("b7") = 0
Range("e2:e100").ClearContents
Range("b6").ClearContents
Sheets("Ark2").Range("A1:J9").ClearFormats
End Sub

Sub nyt_tal()
Start:
If Range("b7") = Range("b4") Then Exit Sub
Mindste = Range("B2")
Storste = Range("B3")
x = Int((Rnd() * (Storste - Mindste + 1) + Mindste))
For Each c In Range("E2:E100")
    If c = x Then GoTo Start
Next
Range("B6").Value = x
Range("b7").Value = Range("b7").Value + 1
Range("e" & Range("B7").Value + 1) = Range("b6").Value
Call FindMarker
End Sub

Sub FindMarker()
Debug.Print x
Sheets("ark2").Activate
Range("a1").Activate
    Cells.Find(What:=x, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
    Selection.Font.ColorIndex = 3
    Selection.Font.Bold = True
Sheets("ark1").Activate
End Sub
Avatar billede kabbak Professor
15. december 2003 - 15:03 #12
jkrons >> det kan også gøres sådan.

Under det store tal på ark1
skrives fra 1-90 placeret i 10 kolonner og 9 rækker
maker dem alle og navngiv Området 'Plade'

Public x As Variant
Sub nyt_spil()
Range("b7") = 0
Range("e2:e100").ClearContents
Range("b6").ClearContents
Range("Plade").ClearFormats
End Sub

Sub nyt_tal()
Start:
If Range("b7") = Range("b4") Then Exit Sub
Mindste = Range("B2")
Storste = Range("B3")
x = Int((Rnd() * (Storste - Mindste + 1) + Mindste))
For Each c In Range("E2:E100")
    If c = x Then GoTo Start
Next
Range("B6").Value = x
Range("b7").Value = Range("b7").Value + 1
Range("e" & Range("B7").Value + 1) = Range("b6").Value
Call FindMarker
End Sub

Sub FindMarker()
For Each c In Range("Plade")
If c = x Then
c.Font.ColorIndex = 3
c.Font.Bold = True
Exit Sub
End If
Next
End Sub
Avatar billede laurbjerg Nybegynder
15. december 2003 - 15:09 #13
Hvis man nu gerne vil ændre på formatet på området "plade", således at tallene er større, hvordan kan man det ? Når man trykker nyt spil ændre den formatet tilbage til det "gamle" ?
Avatar billede kabbak Professor
15. december 2003 - 15:12 #14
c.Font.Size = 14

husk at sætte den tilbage igen
Avatar billede kabbak Professor
15. december 2003 - 15:14 #15
Range("Plade").Font.Size = 10
Avatar billede fjensen111 Nybegynder
16. december 2003 - 10:51 #16
tak for svar
Avatar billede fjensen111 Nybegynder
16. december 2003 - 10:52 #17
Kabbak og bak hvis i ligger et svar får i point
Avatar billede kabbak Professor
16. december 2003 - 11:50 #18
svar ;-))
Avatar billede bak Forsker
16. december 2003 - 12:44 #19
svar ....
Avatar billede bak Forsker
16. december 2003 - 12:44 #20
det kom så her :-)
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