Politics.be

Politics.be (https://forum.politics.be/index.php)
-   Over koetjes en kalfjes... (https://forum.politics.be/forumdisplay.php?f=9)
-   -   Excel - random cell (https://forum.politics.be/showthread.php?t=52030)

Nick_ 20 juni 2006 19:39

Excel - random cell
 
Gegeven:

een lijst van vijftig woorden in Excel.

Doel:

een knop creëren die, als je er op klikt, willekeurig één van die vijftig woorden selecteert.

Vraag:

Biedt Excel de mogelijkheid tot het creëren van een dergelijke functie (via macro's, denk ik dan).
Zo ja, kan iemand me helpen?

DaBlacky 21 juni 2006 09:16

In welke taal worden macro's opgesteld? VB?

Nick_ 21 juni 2006 09:36

Citaat:

Oorspronkelijk geplaatst door DaBlacky (Bericht 1768021)
In welke taal worden macro's opgesteld? VB?

Ik dacht van wel, ja. Maar daar weet ik bitter weinig van. :(

Firestone 21 juni 2006 09:51

Dit is een voorbeeldje (te schrijven in een module):
Deze macro selecteert een willekeurige cel uit het bereik.
Option Explicit

Sub SelecteerRandomWoord()

Const Bereik = "Sheet1!A1:A50"

Dim rngBereik As Range
Dim lngAantalWoorden As Long, lngSelectie As Long, rngSelectie As Range
Dim dblRandom As Double
Set rngBereik = Range(Bereik)
lngAantalWoorden = rngBereik.Count
Randomize (Timer())
dblRandom = Rnd()
lngSelectie = Int(dblRandom * lngAantalWoorden + 1)
Set rngSelectie = rngBereik(lngSelectie)
rngSelectie.Select

End Sub
Dit gaat ervan uit dat je woorden in blad Sheet1 zitten, kolom A, rijen 1 tot en met 50.
Zitten ze elders, dan moet je de instructie
Const Bereik = "Sheet1!A1:A50"
uiteraard aanpassen.

DaBlacky 21 juni 2006 09:58

waar is heel deze onzin voor nodig?
Citaat:

Dim rngBereik As Range
Dim lngAantalWoorden As Long, lngSelectie As Long, rngSelectie As Range
Dim dblRandom As Double
Set rngBereik = Range(Bereik)
lngAantalWoorden = rngBereik.Count
Randomize (Timer())
dblRandom = Rnd()
lngSelectie = Int(dblRandom * lngAantalWoorden + 1)
Set rngSelectie = rngBereik(lngSelectie)
rngSelectie.Select

DaBlacky 21 juni 2006 10:00

amaai, wat een gedoe voor een stomme random-functie...

Firestone 21 juni 2006 10:02

Citaat:

Oorspronkelijk geplaatst door DaBlacky (Bericht 1768084)
amaai, wat een gedoe voor een stomme random-functie...

Ik had begrepen dat Nick ergens in Excel een lijst met woorden had, en dat hij de selectie at-random naar één van deze woorden wilde verplaatsen.

Het kan wellicht korter met één of andere ingebouwde functie van Excel.

DaBlacky 21 juni 2006 10:12

maar het zal wel kloppen. Ik ken niets van VB. Het lijkt me gewoon een heel gedoe. Ik vermoed dat het in C bv makkelijker en sneller zou gaan.

Nick_ 21 juni 2006 11:29

Ik zal vanavond eens experimenteren. Dank, Firestone. :thumbsup:

Nick_ 21 juni 2006 16:49

Ik heb uw VB-taal geplakt in mijn VB-editor en dan de test gedaan en hij geeft een foutmelding. :(


Het zegt "400" en je kan alleen op ok klikken. :cry:

Nick_ 21 juni 2006 16:56

1 Bijlage(n)
Ziehier een lijstje als test:


[IMG]file:///C:/DOCUME%7E1/Nick/LOCALS%7E1/Temp/moz-screenshot.jpg[/IMG]

Nick_ 21 juni 2006 16:57

1 Bijlage(n)
Ziehier het Visual Basics-script:

Nick_ 21 juni 2006 16:59

1 Bijlage(n)
Ziehier de foutmelding als ik de macro laat lopen.

Nick_ 21 juni 2006 16:59

Hellep, Firestone. ;)

Firestone 21 juni 2006 18:08

Citaat:

Oorspronkelijk geplaatst door Nick6502 (Bericht 1769091)
Hellep, Firestone. ;)

:-)

Jij bent een echte cultuurbarbaar. ;-)
  1. Je moet de macro in een standaard-module plaatsen, niet in een klassemodule.
    In de VBA-omgeving kies je hiervoor in het menu Invoegen-->Module.
    VBA maakt dan een nieuwe module aan met naam Module1 (of zoiets).
    In deze module plaats je de macro.
    Verwijder hem uit de klassemodule waar ie nu staat.
  2. Heet jouw werkblad sheet1? Zo neen, pas de instructie
    Const Bereik = "sheet1!A1:A50"
    aan.
Succes!

Bij mij werkt het.
Op het werk op een Engelse Excel-2003, thuis op een Nederlandse Excel-2000.

Nick_ 21 juni 2006 18:51

OK, 't is gelukt.

Bedankt, hoor. Wist niet dat je daar ook goed in was. 8O

Nick_ 21 juni 2006 18:52

Nu kan ik een lijstje maken met quizvragen en daar dan random één uit pikken. 8)

Nick_ 21 juni 2006 19:47

Als ik nu nog te weten zou komen hoe ik een knopje kan aanmaken die de macro start wanneer je er op klikt, zou ik heel gelukkig zijn. :)

Firestone 22 juni 2006 13:25

Citaat:

Oorspronkelijk geplaatst door Nick6502 (Bericht 1769495)
Als ik nu nog te weten zou komen hoe ik een knopje kan aanmaken die de macro start wanneer je er op klikt, zou ik heel gelukkig zijn. :)

Zeg, kan jij Google alléén maar gebruiken als er quizpunten mee te verdienen zijn ? :-)

Zo bijvoorbeeld:
  1. Rechtsklik in Excel op een werkbalk en kies Formulieren.
  2. Klik op de icoon Knop.
  3. Sleep de knop over enkele lege cellen. Er wordt een knop gemaakt.
  4. Het dialoogvenster Macro toewijzen aan object verschijnt. Selecteer je macro en klik op OK.
  5. Sluit de zwevende werkbalk Formulieren.
  6. Rechtsklik op de knop en klik er daarna met de linker muisknop op. Verander de standaardnaam naar een duidelijke omschrijving.
  7. Selecteer een willekeurige cel.
  8. Klik nu op de gemaakte knop. Je macro wordt nu uitgevoerd.

Nick_ 22 juni 2006 13:34

Citaat:

Oorspronkelijk geplaatst door Firestone (Bericht 1770690)
Zeg, kan jij Google alléén maar gebruiken als er quizpunten mee te verdienen zijn ?

Ik hoor het je graag uitleggen. ;)

Bedankt eh! :thumbsup:

Vanaf vanavond gebruik ik het o.a. om quizvragen te selecteren. :-P


Alle tijden zijn GMT +1. Het is nu 15:35.

Forumsoftware: vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Content copyright ©2002 - 2020, Politics.be