abonnement Unibet Coolblue Bitvavo
pi_122793838
quote:
deze was wel heel erg makkelijk :)
“It's gonna be legend-... wait for it... and I hope you're not lactose intolerant because the second half of that word is DAIRY!”
  dinsdag 12 februari 2013 @ 18:24:38 #152
62215 qu63
..de tijd drinkt..
pi_122797264
quote:
2s.gif Op dinsdag 12 februari 2013 16:43 schreef RanTheMan het volgende:

[..]

deze was wel heel erg makkelijk :)
Lang leve google :)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_122822103
Ik heb een lijst met 150 cijfers (1;150) in cellen A1;A150, nu wil ik dat excel dezen in willekeurige volgorde zet in cellen B1;B150. Cijfers mogen niet 2x voorkomen in kolom B.

Ik krijg het niet voor elkaar. -O-
Het gaat hier om XL 2003.

Mag ook een VB/Macro oplossing zijn. Niet dat ik daar heel veel verstand van heb, maar red me er wel aardig mee.

Voorbeeldje
1
2
3
4
5
[  ][ A ][ B]
[1 ]   1  [3 ]
[2 ]   2  [1 ]
[3 ]   3  [2 ]
...


[ Bericht 6% gewijzigd door mien-moeke op 13-02-2013 11:36:35 ]
  woensdag 13 februari 2013 @ 11:36:32 #154
346939 Janneke141
Green, green grass of home
pi_122822665
Maak een hulpkolom met willekeurige getallen [ =ASELECT() ] en sorteer ze op die kolom?
Opinion is the medium between knowledge and ignorance (Plato)
pi_122822748
quote:
0s.gif Op woensdag 13 februari 2013 11:36 schreef Janneke141 het volgende:
Maak een hulpkolom met willekeurige getallen [ =ASELECT() ] en sorteer ze op die kolom?
??
Wil je dit iets uitgebreider uitleggen? Snap je idee erachter niet.
  woensdag 13 februari 2013 @ 11:42:44 #156
346939 Janneke141
Green, green grass of home
pi_122822895
Wat je wil kan niet in één formule, maar wel met een paar handelingen. Je mag er een macro voor schrijven als je dat leuk vindt, maar dit is wat je doet:

- Kopieer je getallen 1..150 naar kolom B.
- in C1 zet je de formule =ASELECT(). Deze genereert een willekeurig getal tussen 0 en 1 met een stuk of 12 decimalen.
- Kopieer de formule naar C2..C150.
- Selecteer nu de cellen B1..C150 en sorteer op kolom C. De getallen in kolom B staan nu in willekeurige volgorde.
- Verwijder de inhoud van kolom C.
Opinion is the medium between knowledge and ignorance (Plato)
pi_122823290
quote:
0s.gif Op woensdag 13 februari 2013 11:42 schreef Janneke141 het volgende:
Wat je wil kan niet in één formule, maar wel met een paar handelingen. Je mag er een macro voor schrijven als je dat leuk vindt, maar dit is wat je doet:

- Kopieer je getallen 1..150 naar kolom B.
- in C1 zet je de formule =ASELECT(). Deze genereert een willekeurig getal tussen 0 en 1 met een stuk of 12 decimalen.
- Kopieer de formule naar C2..C150.
- Selecteer nu de cellen B1..C150 en sorteer op kolom C. De getallen in kolom B staan nu in willekeurige volgorde.
- Verwijder de inhoud van kolom C.
Ik 'ruik' hierin mogelijkheden. Ik ga er even mee stoeien. Thnx alvast.
  woensdag 13 februari 2013 @ 12:20:37 #158
62215 qu63
..de tijd drinkt..
pi_122824258
quote:
0s.gif Op woensdag 13 februari 2013 11:42 schreef Janneke141 het volgende:
Wat je wil kan niet in één formule, maar wel met een paar handelingen. Je mag er een macro voor schrijven als je dat leuk vindt, maar dit is wat je doet:

- Kopieer je getallen 1..150 naar kolom B.
- in C1 zet je de formule =ASELECT(). Deze genereert een willekeurig getal tussen 0 en 1 met een stuk of 12 decimalen.
- Kopieer de formule naar C2..C150.
- Selecteer nu de cellen B1..C150 en sorteer op kolom C. De getallen in kolom B staan nu in willekeurige volgorde.
- Verwijder de inhoud van kolom C.
Dat kan sneller :)

Gebruik ASELECTTUSSEN(1;150) en zit dit in B1:B150 en je bent klaar :)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  woensdag 13 februari 2013 @ 12:21:10 #159
346939 Janneke141
Green, green grass of home
pi_122824278
quote:
0s.gif Op woensdag 13 februari 2013 12:20 schreef qu63 het volgende:

[..]

Dat kan sneller :)

Gebruik ASELECTTUSSEN(1;150) en zit dit in B1:B150 en je bent klaar :)
Niet als je geen doublures wil toch?
Opinion is the medium between knowledge and ignorance (Plato)
  woensdag 13 februari 2013 @ 12:25:11 #160
62215 qu63
..de tijd drinkt..
pi_122824396
quote:
0s.gif Op woensdag 13 februari 2013 12:21 schreef Janneke141 het volgende:

[..]

Niet als je geen doublures wil toch?
Hmm, fair point..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_122825760
Hoe zien de getallen in kolom A er uit?
Aldus.
pi_122826011
quote:
2s.gif Op woensdag 13 februari 2013 13:03 schreef Z het volgende:
Hoe zien de getallen in kolom A er uit?
1 tot en met 150. Geen decimalen. Celeigenschappen: Getal
Of bedoel je wat anders?
pi_122826313
Nee dat. Maar er kunnen dus een paar dubbele tussen zitten?
Aldus.
pi_122826407
Voorts heb ik nog een soortgelijk edoch iets ingewikkelder probleem.

Ik heb 8 mensen, 8 taken, en 5 weken.
In kolom A2;A9 staan de taken
In rij B1;F1 staan de weeknummers
in kolom A 11;A18 staan de namen van de personen.
(Uiteraard is de hoeveelheid taken en namen behoorlijk wat langer. Maar voor t overzicht hier effe ingekort)

Ik wil volledig willekeurig door xl de namen bij de taken laten plaatsen. Maar:
1- 1 iemand kan niet meer dan 1 taak/wk uitvoeren
2- 1 iemand kan niet meer tijd dan 1wk/taak hebben
(beetje sudoku achtig dus)

Ik wil dus per cel 1 naam hebben. Die naam mag verder in de rij en kolom niet weer voorkomen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
T=taak
[ ][A][B][C][D][E][F]
[1][  ][1][2][3][4][5]   (weken)
[2][T1]
[3][T2]
[4][T3]
[5][T4]
[6][T5]
[7][T6]
[8][T7]
[9][T8]

[11][naam1]
[12][naam2]
[13][naam3]
[14][naam4]
[15][naam5]
[16][naam6]
[17][naam7]
[18][naam8]

Eigenlijk denk ik, als ik deze heb, red ik me met die ander ook wel :)

[ Bericht 67% gewijzigd door mien-moeke op 13-02-2013 13:29:51 ]
pi_122826426
quote:
2s.gif Op woensdag 13 februari 2013 13:18 schreef Z het volgende:
Nee dat. Maar er kunnen dus een paar dubbele tussen zitten?
Nee, geen dubbellen
pi_122828520
Dat is toch een kwestie van 40 (8 x 5) cellen random verdelen over de 8 namen?
Aldus.
pi_122828863
quote:
2s.gif Op woensdag 13 februari 2013 14:18 schreef Z het volgende:
Dat is toch een kwestie van 40 (8 x 5) cellen random verdelen over de 8 namen?
Ja,volgens mij wel.Maar hoe doe je dat?
pi_122828999
Wil je dat met een druk op de knop of in een paar stappen? In een paar stappen kan je de namen als uitgangspunt nemen en daar random per week de taken over verdelen toch?
Aldus.
pi_122829082
quote:
10s.gif Op woensdag 13 februari 2013 14:31 schreef Z het volgende:
Wil je dat met een druk op de knop of in een paar stappen? In een paar stappen kan je de namen als uitgangspunt nemen en daar random per week de taken over verdelen toch?
Graag met een druk op de knop. Aangezien de hele sheet nogal aan verandering onderhevig is.
pi_122847640
Dit klinkt een beetje als het klassieke 8-koninginnen probleem. Dat is de casus, zet 8 koninginnen op een schaakbord zonder dat ze elkaar kunnen slaan. http://en.wikipedia.org/wiki/Eight_queens_puzzle

Volgens mij maak je het probleem alleen te ingewikkeld. Als je 1 werkende oplossing hebt, kun je vervolgens de namen willekeurig bepalen?

In mijn ogen kan je verschillende scenario's uitwerken:
1) Je bouwt een macro dat gebruik maakt van de voorwaarden die je schetst.
2) Je gebruikt de solver van Excel
3) Je maakt 1 werkend model en plaatst daar random namen in.

Overigens denk ik niet dat je alle voorwaarden hebt benoemd, en dat dit een onderdeel van het probleem is. Zoals ik je vraag interpreteer:
8 mensen, 8 taken, 5 weken:
1) ieder mens moet 1 taak uitvoeren in een week (dus niet wat je zegt niet meer dan, want niemand die 1 taak uitvoert is ook niet meer dan).
2) ieder mens mag de taak maar 1 keer uitvoeren
of mis ik hier iets?
pi_122859838
Ik zit met een excel probleem waar ik maar niet uit kom.
Ik heb het grotendeels al voorelkaar maar een aantal zaken niet:
Het zou als volgt moeten gaan: Als ik bij uitgifte een getal invoer en ik klik op de button "verwerken" dan zou hij dat getal moeten aftrekken van de huidige voorraad en het kolom van "uitgifte" moet dan weer leeg zijn.
Kom je onder de minimum voorraad dan zou er in kolom K en L "bestellen" moeten komen te staan.
Ik hoop dat iemand mij hier mee kan helpen.
Ander probleem is dat ik op mijn werk zit en alles is nogal redelijk afgeschermd dus ik kan deze file niet zomaar even ergens sharen.
Ik kan het wel via email doen.
Iemand die mij wil helpen?

THANX!!
Als we niet bereid zijn een tolerante samenleving te verdedigen tegen de aanvallen van de intolerante medemens, dan zal de tolerante mens te gronde gaan, en met hem de tolerantie
pi_122860368
quote:
0s.gif Op donderdag 14 februari 2013 08:19 schreef sloopkogel het volgende:
Ik zit met een excel probleem waar ik maar niet uit kom.
Ik heb het grotendeels al voorelkaar maar een aantal zaken niet:
Het zou als volgt moeten gaan: Als ik bij uitgifte een getal invoer en ik klik op de button "verwerken" dan zou hij dat getal moeten aftrekken van de huidige voorraad en het kolom van "uitgifte" moet dan weer leeg zijn.
Kom je onder de minimum voorraad dan zou er in kolom K en L "bestellen" moeten komen te staan.
Ik hoop dat iemand mij hier mee kan helpen.
Ander probleem is dat ik op mijn werk zit en alles is nogal redelijk afgeschermd dus ik kan deze file niet zomaar even ergens sharen.
Ik kan het wel via email doen.
Iemand die mij wil helpen?

THANX!!
Stel in kolom A (vanaf A2) staat je artikelomschrijving, in kolom B (vanaf B2) je actuele voorraad en in kolom C je minimale voorraad. In kolom D typ je de uitgiftewaarde in en doet op de knop drukken.
Die knop moet je aan de volgende code koppelen:

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
37
38
39
Sub uitgeven()

Dim iUit As Integer
Dim iVoor As Integer
Dim iMin As Integer
Dim iRest As Integer

If ActiveCell.Column <> 4 Then
    MsgBox "Selecteer cel in kolom D met uitgifte waarde"
    Exit Sub
End If

iUit = ActiveCell.Value
iMin = ActiveCell.Offset(0, -1).Value
iVoor = ActiveCell.Offset(0, -2).Value
omschrijving = ActiveCell.Offset(0, -3).Value
iRest = iVoor - iUit

Select Case iRest
Case Is < 0
    MsgBox "Je hebt te weinig voorraad voor deze uitlevering (" & iUit & " stuks)"
    Exit Sub
Case 0
    MsgBox "Je nieuwe voorraad is 0, direct nieuwe bestellen"
Case Is <= iMin
    MsgBox "Je komt na uitleveren onder je minimale voorraad, direct bestellen"
End Select

'bevestigen
btnCheck = MsgBox("Wil je " & iUit & " stuks van materiaal " & omschrijving & " uitgeven?", vbYesNo)
If btnCheck = vbNo Then Exit Sub

'voorraad aanpassen
ActiveCell.Offset(0, -2).Value = iRest
ActiveCell.Select
Selection.ClearContents
MsgBox ("Uitgifte is verwerkt")

End Sub
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
pi_122860404
En in kolom K en L zet je de functie: =if(b2<=C2, "BESTELLEN")
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
pi_122861188
quote:
3s.gif Op donderdag 14 februari 2013 08:59 schreef Deetch het volgende:
En in kolom K en L zet je de functie: =if(b2<=C2, "BESTELLEN")
Ik heb je een prive-bericht geschreven
Als we niet bereid zijn een tolerante samenleving te verdedigen tegen de aanvallen van de intolerante medemens, dan zal de tolerante mens te gronde gaan, en met hem de tolerantie
pi_122866934
quote:
0s.gif Op donderdag 14 februari 2013 09:38 schreef sloopkogel het volgende:

[..]

Ik heb je een prive-bericht geschreven
en beantwoord
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
pi_122876315
quote:
0s.gif Op woensdag 13 februari 2013 21:27 schreef snabbi het volgende:
Dit klinkt een beetje als het klassieke 8-koninginnen probleem. Dat is de casus, zet 8 koninginnen op een schaakbord zonder dat ze elkaar kunnen slaan. http://en.wikipedia.org/wiki/Eight_queens_puzzle

Volgens mij maak je het probleem alleen te ingewikkeld. Als je 1 werkende oplossing hebt, kun je vervolgens de namen willekeurig bepalen?

In mijn ogen kan je verschillende scenario's uitwerken:
1) Je bouwt een macro dat gebruik maakt van de voorwaarden die je schetst.
2) Je gebruikt de solver van Excel
3) Je maakt 1 werkend model en plaatst daar random namen in.

Overigens denk ik niet dat je alle voorwaarden hebt benoemd, en dat dit een onderdeel van het probleem is. Zoals ik je vraag interpreteer:
8 mensen, 8 taken, 5 weken:
1) ieder mens moet 1 taak uitvoeren in een week (dus niet wat je zegt niet meer dan, want niemand die 1 taak uitvoert is ook niet meer dan).
2) ieder mens mag de taak maar 1 keer uitvoeren
of mis ik hier iets?
Even een simpelere uitleg.
Iedereen moet per week 1 taak uitvoeren
Niemand mag 2 x dezelfde taak uitvoeren in de gehele periode van (hier) 5 weken
Om iedereen tevreden te houden worden de taken willekeurig verdeelt.

Het liefst alles in een macro/vb script, zodat ik die aan een knop kan koppellen.
Hiermee kan ik eenvoudig de taken en namen veranderen, zonder in de code/formules te moeten 'kloten'.
pi_122877301
Deze macro zet de getallen 1 t/m 5 in een random volgorde:

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
Sub Shuffle()
     
Dim intNumbers(5) As Integer
Dim rngNumbers As Range
Dim rngRandom As Range
Dim rngSort As Range
Dim rngTemp As Range

    Set rngNumbers = ActiveSheet.Range("A1:A5")
    Set rngRandom = ActiveSheet.Range("B1:B5")
    Set rngSort = ActiveSheet.Range("A1:B5")
     
    Randomize
     ' store number and random sequence
    For Each rngTemp In rngRandom
        rngTemp = Rnd()
        rngTemp.Offset(0, -1) = rngTemp.Row
    Next
     
    rngSort.Sort key1:=rngSort.Columns(2)
    For Each rngTemp In rngNumbers
        intNumbers(rngTemp.Row) = rngTemp
        Debug.Print "Order "; rngTemp.Row, "number "; intNumbers(rngTemp.Row)
    Next
     
Range("A1").Select
ActiveCell.Offset(0, 1).EntireColumn.Delete

End Sub

En plaatst de waarden in A1 t/m A5. Dat is eigenlijk alles wat je nodig hebt toch?
Aldus.
pi_122893400
quote:
12s.gif Op donderdag 14 februari 2013 16:43 schreef mien-moeke het volgende:
Om iedereen tevreden te houden worden de taken willekeurig verdeelt.
Zoek een oplossing in de trant van:
Mens 1, taak 1, week 1
mens 2, taak 2, week 1 etc

Wanneer je een werkende combinatie hebt gevonden over de weken heen, dan kan je daarna random toewijzen dat mens 1 = Piet.

Voor Piet is de taak die hij moet uitvoeren nog steeds random, omdat Piet vooraf niet weet of hij het schema van mens 1, 2 of 3 gaat volgen. Het schema van mens 1, 2 en 3 ligt wel vast.
pi_122904345
quote:
2s.gif Op donderdag 14 februari 2013 17:04 schreef Z het volgende:
Deze macro zet de getallen 1 t/m 5 in een random volgorde:
[ code verwijderd ]

En plaatst de waarden in A1 t/m A5. Dat is eigenlijk alles wat je nodig hebt toch?
Dit lijkt er heel erg op. Alleen kreeg ik een foutmelding bij het moment waarop t script wil gaan sorteren.
Op één of andere manier kan ik geen cellen/bereiken selecteren om opdrachten op uit te voeren, die in een vooraf gedefinieerde range staan.

Heb t op de volgende manier opgelost:
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
Sub Shuffle()
     
Dim intNumbers(9) As Integer
Dim RngOne As Range
Dim rngAll As Range
Dim rngNumbers As Range
Dim rngRandom As Range
Dim rngSort As Range
Dim rngTemp As Range

    Set rngNumbers = ActiveSheet.Range("A1:A9")
    Set rngRandom = ActiveSheet.Range("B1:B9")
    Set rngSort = ActiveSheet.Range("A1:A9")
    Set rngAll = ActiveSheet.Range("B9:A1")
    Set RngOne = ActiveSheet.Range("B1")
     
    Randomize
     ' store number and random sequence
    For Each rngTemp In rngRandom
        rngTemp = Rnd()
        rngTemp.Offset(0, -1) = rngTemp.Row
    Next
     
    rngAll.Select
    RngOne.Activate
    Selection.sort Key1:=RngOne, Order1:=xlAscending
    
End Sub

Snap ook niet helemaal wat dit:
1
2
3
4
5
rngSort.Sort key1:=rngSort.Columns(2)
    For Each rngTemp In rngNumbers
        intNumbers(rngTemp.Row) = rngTemp
        Debug.Print "Order "; rngTemp.Row, "number "; intNumbers(rngTemp.Row)
    Next
stukje code precies doet. (Uiteraard ligt dit aan mijn VB kennis. -O- )

Nog 1 vraag:
Hoe ga ik dit bv 5x herhalen, zodat ik, als t script afgelopen is, in de kolommen A,B,C,D en E een rij met 5 willekeurige cijfers (van 1 t/m 5) heb? En t liefst ook dat elk cijfer maar 1x per rij voorkomt?
Thnx

[ Bericht 7% gewijzigd door mien-moeke op 15-02-2013 09:34:55 ]
pi_122945548
Een korte vraag als deze nog niet is gesteld.

Ik merk plotseling dat ik bij Excel niet meer e.a. kan saven maar gelijk moet uitprinten wil ik het niet verloren laten gaan. Iemand een oplossing?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')