abonnement Unibet Coolblue
pi_67897799
bij mij werkt het met dezelfde getallen wel. Welke versie van excel draai je
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
  zaterdag 11 april 2009 @ 11:15:55 #77
113650 maniack28
Dresden Dolls O+
pi_67919567
2003
Cause I'd rather continue my trip to the top of the mountain then freeze to death in the valley.
  zaterdag 11 april 2009 @ 15:45:41 #78
158136 Joooo-pi
Do you want a balloon...
pi_67925181
quote:
Op zaterdag 11 april 2009 11:15 schreef maniack28 het volgende:
2003
Is niet veel mis mee hoor.
heitieh
pi_67946949
Ik heb een Excel programma met 1618 rijen, maar wat ik nu moet doen is dat ik daarvan 70 willekeurige groepen samenstel van 23 rijen ( dus bijvoorbeeld 1 390 272 305 264 ect ect ect...)
Maar is dit mogelijk met Excel? kan ik 70 wilekeurige groepen maken of heb ik een ander programma nodig die alle groepen samenstelt?
Een enkele rij mag ook maar maar 1 keer gebruikt worden. Dus dit mag niet: (1 ect ect ect) en ( 1 ect ect).

Thanx!
pi_67950286
Hm moet kunnen. Wordt wel leuk uitvogelen, wordt iets met een array maar dat ken ik niet zo goed
pi_67961729
Ik heb nog wat mensen gevraagd en ze zeiden dat je het met deze formule moet doen:
quote:
=RANDBETWEEN(1,1618)
Maar mijn probleem is dan natuurlijk dat dat unieke gekozen nummer opnieuw gekozen zal worden voordat alle nummers 'aan de beurt' zijn geweest. Weet iemand misschien hoe dit opgelost kan worden?
pi_67962643
Ik zat te denken aan deze constructie:

Ik maak een macro, waarin het volgende gebeurd:
- Er wordt een random nummer gekozen tussen 1 en 1618
- Die wordt vergeleken met een array aan nummers
- Deze array wordt gevuld door nummers die al een keer gekozen zijn
- Als het nummer voorkomt in de array, is hij al gekozen, en wordt er een nieuw random nummer gekozen.

Als je dit 70 keer doet, heb je 1 groep. Dan begin je de 2e. Alle al gekozen nummers komen wel in 1 array terecht.

Ik weet alleen niet of een array wel 1600 cijfers kan bevatten. En waarschijnlijk is het niet de snelste macro

Morgen zal ik eens kijken.
pi_67974560
Zo maar even...
Ik heb eerst een macro gemaakt (aan een button gehangen) die 70 groepen maakt en de cellen leegt. Was even handig voor mezelf maar ik zet hem er maar even bij:
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()

Cells.Clear

For i = 1 To 70
    Cells(1, i).Value = "Groep " & i
Next i

End Sub


Daarna de hoofdcode aan een andere button.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Sub CommandButton2_Click()

Dim max_index, temp, a, b, c, i, j, k As Integer
Dim arrValues(1 To 1618) As Variant
a = 1
b = 1
c = 1
i = 1
j = 0
k = 1

max_index = 1618

For k = 1 To 1618
    arrValues(k) = k
Next k

For i = 1 To max_index
    j = Int((max_index * rnd) + 1)
    temp = arrValuesi
    arrValuesi = arrValues(j)
    arrValues(j) = temp
Next i

For a = 1 To 1618
    b = b + 1
    
    If a Mod 23 = 0 Then
        c = c + 1
        b = 2
    End If
    Cells(b, c).Value = arrValues(a)
   
Next a
    
End Sub


Nu heb ik 70 groepen van 23 nummers, en nog eens 9 losse nummers (1618 is niet deelbaar door 23 :P )
In mijn volgende post zal ik uitleggen wat de macro doet.
pi_67974670
Waar je i ziet staan, moet zijn haakje open - i - haakje sluiten, dus even zelf aanpassen.

Ok de eerste code is simpel; leeg alle cellen, en vul de eerste rij met 70x "Groep " en daarachter 1 t/m 70.

1
2
3
For k = 1 To 1618
    arrValues(k) = k
Next k

Hier vul ik een array met 1618 cijfers, gewoon positie 1 in de array is nummer 1, etc tot 1618.

1
2
3
4
5
6
For i = 1 To max_index
    j = Int((max_index * rnd) + 1)
    temp = arrValuesi
    arrValuesi = arrValues(j)
    arrValues(j) = temp
Next i

Hier wordt het eerste nummer gepakt, en daarna een random nummer verzonnen tussen 1 en 1618, en deze twee worden met elkaar omgewisseld. Lijkt mij random genoeg.

1
2
3
4
5
6
7
8
9
For a = 1 To 1618
    b = b + 1
    
    If a Mod 23 = 0 Then
        c = c + 1
        b = 2
    End If
    Cells(b, c).Value = arrValues(a)
Next a

Hier wordt door de hele array heengelopen, en opgeknipt in stukken van 23 (Mod berekent het restgetal als je deelt, dus 7 Mod 3 = 1). Hiermee kan je dus zien wanneer de ene groep afgesloten wordt en je naar de volgende moet.

Hoop dat het zo duidelijk is :)
pi_67980650
quote:
Op maandag 13 april 2009 13:26 schreef DaFan het volgende:
Zo maar even...
Ik heb eerst een macro gemaakt (aan een button gehangen) die 70 groepen maakt en de cellen leegt. Was even handig voor mezelf maar ik zet hem er maar even bij:
[ code verwijderd ]

Daarna de hoofdcode aan een andere button.
[ code verwijderd ]

Nu heb ik 70 groepen van 23 nummers, en nog eens 9 losse nummers (1618 is niet deelbaar door 23 )
In mijn volgende post zal ik uitleggen wat de macro doet.
Bedankt.
  maandag 13 april 2009 @ 19:13:57 #86
158136 Joooo-pi
Do you want a balloon...
pi_67982842
quote:
Op maandag 13 april 2009 13:26 schreef DaFan het volgende:
Zo maar even...
Ik heb eerst een macro gemaakt (aan een button gehangen) die 70 groepen maakt en de cellen leegt. Was even handig voor mezelf maar ik zet hem er maar even bij:
[ code verwijderd ]

Daarna de hoofdcode aan een andere button.
[ code verwijderd ]

Nu heb ik 70 groepen van 23 nummers, en nog eens 9 losse nummers (1618 is niet deelbaar door 23 )
In mijn volgende post zal ik uitleggen wat de macro doet.
Mooi gemaakt

moet de term "Randomize" nog ergens tussen?

heitieh
pi_67983583
quote:
Op maandag 13 april 2009 19:13 schreef Joooo-pi het volgende:

[..]

Mooi gemaakt

moet de term "Randomize" nog ergens tussen?

Dat doet deze regel:
j = Int((max_index * rnd) + 1)

rnd = random getal tussen 0 en 1. Max_index is het hoogste getal, en Int rond het getal af.
  maandag 13 april 2009 @ 20:34:20 #88
158136 Joooo-pi
Do you want a balloon...
pi_67985132
quote:
Op maandag 13 april 2009 19:40 schreef DaFan het volgende:

[..]

Dat doet deze regel:
j = Int((max_index * rnd) + 1)

rnd = random getal tussen 0 en 1. Max_index is het hoogste getal, en Int rond het getal af.
yep, ik heb het gelezen. Maar ik dacht dat je vooraf de random generator reset met "Randomize".

Enfin. Mooi gemaakt.
heitieh
pi_67985244
Dankuwel, was er zelf ook wel blij mee, want had zelf nog nooit met arrays gewerkt.
  dinsdag 14 april 2009 @ 11:32:15 #90
134944 Hi_flyer
Van alles te melden
pi_68000065
Ik wil in VBA hetzelfde kunnen als met vlookup, maar ik krijg het niet aan de praat:
1
2
3
4
Private Sub update_form()
     TextBox1.Text = Sheet3.range("L2:T10").Find(What:=ComboBox1.Value).Offset(0, 1)
  
End Sub

Wat klopt er niet aan deze code? Ik krijg een syntax error Het is sowieso een rotfunctie, erg onoverzichtelijk.

[ Bericht 20% gewijzigd door Hi_flyer op 14-04-2009 11:47:55 ]
  dinsdag 14 april 2009 @ 12:05:54 #91
134944 Hi_flyer
Van alles te melden
pi_68001198
En laat maar, ik heb een hele stomme beginnersfout gemaakt
  dinsdag 14 april 2009 @ 15:07:10 #92
251202 ruudtb205
Ik weet het niet meer!
pi_68007150
quote:
Op maandag 6 april 2009 20:03 schreef Joooo-pi het volgende:

[..]

Kijk deze plaatjes:
Blad1:
Klik

Blad2:
Klik

Achter die ene knop staat de volgende code:
[ code verwijderd ]

Aan het einde van de maand klik je op die knop en je veld op blad 1 wordt geleegd en de gegevens gaan naar blad 2.

Beste mensen,
Ik ben al een poos aan het stoeien met de code die Joooo-pi gemaakt had, maar het levert nog niet het gewenste resultaat op. Het werkt nu gedeeltelijk, ik heb de code wat aangepast:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub CommandButton1_Click()
col = 0
 i = 1
 Do 
 If Worksheets("Blad2").Cells(2, i).Value = "0" Then col = i
 i = i + 1
 Loop Until Worksheets("Blad2").Cells(2, i).Value = ""
 If col = 0 Or col > 26 Then
 MsgBox "Maand niet gevonden!" & col
 Exit Sub
 End If
 
 Worksheets("Blad1").Range("N2:N13").Select
 Selection.Copy
 Worksheets("Blad2").Select
 Worksheets("Blad2").Cells(2, col).Select
  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
 Sheets(1).Select
  'Range("B3:M31").Clear
 Range("A1").Select
MsgBox "overzetten klaar"
End Sub

Het werkt in zoverre, dat de waarden nu wel gekopieerd worden en verplaatst naar blad 2, maar naar de verkeerde kolom. In de code geef ik volgens mij aan dat de code de eerste kolom moet nemen waar als waarde 0 staat. Hij kopieert echter naar de kolom naast de laatste kolom waar 0 staat. Ik heb al zitten kijken (voor zover ik wat van VBA afweet ) maar ik krijg het niet aan de praat.......
Hulp zou welkom zijn!

[ Bericht 1% gewijzigd door ruudtb205 op 14-04-2009 15:12:53 ]
Leven is leren!
pi_68007451
Then col = i - 1

Of

Worksheets("Blad2").Cells(2, col-1).Select

Gewoon ergens 1 vanaf trekken is altijd lekker makkelijk
  dinsdag 14 april 2009 @ 15:44:55 #94
251202 ruudtb205
Ik weet het niet meer!
pi_68008458
quote:
Op dinsdag 14 april 2009 15:15 schreef DaFan het volgende:
Then col = i - 1

Gewoon ergens 1 vanaf trekken is altijd lekker makkelijk
Dat werkt gedeeltelijk: hij kopieert het nu wel naar de kolom waar de waarde 0 staat in cel 2, maar hij doet dat naar cel Y2. De eerste cel waar de waarde 0 staat is echter(op dit moment) i2. Als ik de knop meerder malen achter elkaar indruk worden achtereenvolgens de kolommen Y, W, U,S (in die volgorde) gevuld, in plaats van de kolommen i, K, M etc. Het lijkt alsof de loop achteraan begint met zoeken, maar ik zie niet waarom en ook niet of ik de zoekvolgorde kan omdraaien. Het zal wel logisch zijn, maar voor mij even niet......
Leven is leren!
pi_68012555
Ik heb reeds erg veel hulp ontvangen via dit forum en erg veel dank daarvoor maar heb nog een vraagje. De vorige keer hebben jullie me uitgelegd hoe ik via vlookup ervoor kan zorgen dat ik een tekst weergegeven krijg bij het invullen van een bapaald nummer in een cel. Nu moet ik iets soortgelijks doen maar dan met ranges. Ik wil nl dat er een prijs tevoorschijn komt in een cel als de hoeveelheid binnen een bepaalde range valt. Dus bv. Als de hoeveelheid tussen 1-5 kg zit dan kost dit 5 euro maar zit deze tussen 5-10 dan bv 10 euro. Heeft iemand hier ervaring mee?

Dank voor de hulp


Gr
  dinsdag 14 april 2009 @ 17:42:34 #96
62215 qu63
..de tijd drinkt..
pi_68012690
=als(1>GEWICHT<5;"¤5";als(5>GEWICHT<10;"¤10";"FOUT!"))

Zoiets? Gewicht moet je dus vervangen door de cel waar het gewicht in staat..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_68012871
Kan je ook beter met een VLOOKUP doen. Zal zo even uitleggen hoe, ga eerst ff hapje eten.
(IF werkt prima als je maar 2 waardes hebt, dan is het niet de moeite, maar als je er 100 hebt...tja).
pi_68013133
Hoop dat het zo duidelijk is;

Formule in E3:
1=VLOOKUP(D3,$A$3:$B$5,2,1)

En naar beneden getrokken.

Als de exacte waarde niet gevonden wordt zoekt hij de dichtstbijzijnste, naar beneden toe. Komt door de 1 aan het eind

Ik heb 5.01 en 10.01 gebruikt omdat je zegt 1-5 en 5-10 (wat is 5 dan? 5 euro of 10 euro).
Maar dat kan je zelf aanpassen natuurlijk.
  dinsdag 14 april 2009 @ 18:00:25 #99
62215 qu63
..de tijd drinkt..
pi_68013243
quote:
Op dinsdag 14 april 2009 17:48 schreef DaFan het volgende:
Kan je ook beter met een VLOOKUP doen. Zal zo even uitleggen hoe, ga eerst ff hapje eten.
(IF werkt prima als je maar 2 waardes hebt, dan is het niet de moeite, maar als je er 100 hebt...tja).
Dat vergeet ik inderdaad altijd Maximaal 7 met alles ouder dan Excel2007, toch?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_68013412
TOP Thx again!!!Werkt perfect!
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')