Ofwel je hebt 12 items en je wilt alle mogelijke combinaties van 2 items nalopen, zonder dat er dubbelen zijn?quote:Op woensdag 5 juni 2013 15:31 schreef _superboer_ het volgende:
Ik heb een lijst van 12 items. Elk van deze items wordt wel of niet gecombineerd met een ander item. Hierbij is het zo dat de combinatie (a,b) gelijk is aan (b,a). Daarnaast kan het niet dat (a,b) en (b,c) aangezien items maar met 1 ander item gecombineerd kunnen worden.
Hoe kan ik het eenvoudigst in VBA alle mogelijke combinaties langs gaan?
| 1 2 3 4 5 | For i = 1 To xRange.Count - 1 For j = i + 1 To xRange.Count Combination = xRange(i) + xRange(j) Next Next |
Bedankt voor de hulp, ik zie dat ik het niet helemaal duidelijk heb uitgelegd.quote:Op woensdag 5 juni 2013 15:52 schreef PAAC het volgende:
[..]
Ofwel je hebt 12 items en je wilt alle mogelijke combinaties van 2 items nalopen, zonder dat er dubbelen zijn?
Zo ja, dan zou dit misschien wel kunnen werken denk ik
[ code verwijderd ]
Waarbij xRange je lijst met items is.
Als je ook één item kunt hebben krijg je dit, waarbij alle combinaties in de resultArray komenquote:Op woensdag 5 juni 2013 16:01 schreef _superboer_ het volgende:
[..]
Bedankt voor de hulp, ik zie dat ik het niet helemaal duidelijk heb uitgelegd.
Het is ook mogelijk dat items niet met een ander item worden gecombineerd. Uiteindlijk geef ik aan alle sets van combinaties, dus bijvoorbeeld (1, 2&3, 4, 5&6, 7&8), maar ook (1&2, 3, 4, 5, 6&8, 7), etc. een waarde om vervolgens de beste optie kiezen.
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Verder aanpassen naar eigen wens om de opties te kiezen moet wel lukken denk ik![]()
Dat klinkt dan wel weer interessantquote:Op woensdag 5 juni 2013 15:22 schreef PAAC het volgende:
[..]
Ik heb het in een *.xlam gegoten en als "Add-In" toegevoegd.
Kan gewoon vanuit iedere excel sheet waarmee ik werk die functie oproepen en dan histogrammen maken als ik ze nodig heb.
Is dat mogelijk?quote:Op donderdag 6 juni 2013 10:06 schreef KnutdeIJsbeer het volgende:
[..]
Ik heb een kolom met harde getallen, deze neem ik over in een andere kolom met een formule:
="="&TEKEN(34)&A1&TEKEN(34)
En dan worden ze in die kolom weer gegeven als ="getal". Nu wil ik eigenlijk dat ze worden weergegeven als getal maar dat als je op de cel klikt er wel staat ="getal".
Als dat zo duidelijk is
Weet niet of dit is wat je zoekt, maar misschien kun je hier iets mee:quote:Op donderdag 6 juni 2013 10:49 schreef KnutdeIJsbeer het volgende:
Uit ander topic
[..]
Is dat mogelijk?
Waarom zou je dat willen?quote:Op donderdag 6 juni 2013 10:49 schreef KnutdeIJsbeer het volgende:
Uit ander topic
[..]
Is dat mogelijk?
Dat moet je aan onze opdrachtgever vragenquote:Op donderdag 6 juni 2013 12:56 schreef Deetch het volgende:
[..]
Waarom zou je dat willen?
Als je het als getal wilt zien kun je toch gewoon =celverwijzing doen?
Als er per se een = voor moet kun je je celformat aanpassen naar custom en daar dan =0 invoeren
De aanhalingstekens ewr voor kan geloof ik niet met format.
Klopt het als ik zeg dat je een numerieke waarde wilt omzetten naar tekst format?(daar lijkt je uitleg wel op)quote:Op donderdag 6 juni 2013 12:59 schreef KnutdeIJsbeer het volgende:
[..]
Dat moet je aan onze opdrachtgever vragenZij willen een bepaalde dump uit SAP en dat moet op deze manier aangeleverd worden om daar in te lezen.
Overigens is het gelukt, met een omweg. Kolom 1 vaste waarde, kolom 2 formule, kolom 3 plakken speciaal van kolom 2 als "waarde". Dat had ik al gedaan maar blijkbaar moet je dan ook nog een keer op f2 duwen
| 1 2 3 4 5 6 7 | Naam aantal Naam 1 2 Naam 2 2 Naam 3 1 Naam 1 2 Naam 2 2 (Naam 1 -) |
=text()quote:Op donderdag 6 juni 2013 12:59 schreef KnutdeIJsbeer het volgende:
[..]
Dat moet je aan onze opdrachtgever vragenZij willen een bepaalde dump uit SAP en dat moet op deze manier aangeleverd worden om daar in te lezen.
Overigens is het gelukt, met een omweg. Kolom 1 vaste waarde, kolom 2 formule, kolom 3 plakken speciaal van kolom 2 als "waarde". Dat had ik al gedaan maar blijkbaar moet je dan ook nog een keer op f2 duwen
ziet er uit is niet hetzelfde als 'is' . Ligt een beetje aan wat ie wil natuurlijkquote:Op donderdag 6 juni 2013 13:03 schreef Deetch het volgende:
Na even googlen kom ik op het volgende custom format uit:
celwaarde = 132
format cell, custom, =\"0\"
ziet er uit als ="132" en je kunt er nog wel steeds mee rekenen.
bron
Ik snap het principe van SUBTOTAL wel, maar niet hoe ik dat in mijn geval moet toepassen. Ik wil met de formule dus bijv. achter Naam 2 het aantal occurences te zien krijgen van Naam 2 in gehele kolom.quote:Op maandag 10 juni 2013 22:41 schreef Holy_Goat het volgende:
Ik gebruik bijvoorbeeld in het nederlands: =subtotaal(109,[bereik van cellen hier])
Die code zegt wat over de toegepaste methode. Zie voor meer info:
http://www.techonthenet.com/excel/formulas/subtotal.php of wel eerste link http://lmgtfy.com/?q=excel+subtotal
(kon je zelf ook wel vinden)
Dat kan toch gewoon met een COUNTIF?quote:Op maandag 10 juni 2013 23:47 schreef InTrePidIvity het volgende:
[..]
Ik snap het principe van SUBTOTAL wel, maar niet hoe ik dat in mijn geval moet toepassen. Ik wil met de formule dus bijv. achter Naam 2 het aantal occurences te zien krijgen van Naam 2 in gehele kolom.
Jou voorbeeld is niet een matrix vermenigvuldiging...quote:Op woensdag 12 juni 2013 13:18 schreef Joooo-pi het volgende:
Gebruik je CTRL - SHIFT - ENTER om de matrixformule te bevestigen?
[ afbeelding ]
Nee, dat weet ik ook wel. Dit is de standaard excel vermenigvuldiging, niet de wiskundigequote:Op woensdag 12 juni 2013 16:29 schreef PAAC het volgende:
[..]
Jouw voorbeeld is niet een matrix vermenigvuldiging...
Graag gedaanquote:En het lukt ineens met een mmult, ff verder testen... (lukt soms wel en soms niet)
Edit:
Duurde even, maar het werkt.
Blijkbaar kreeg ik "#VALUE!" wanneer ik geen ctrl + shift + enter gebruikte.
Ben gewend dat ik dan de eerste waarde uit de array kreeg...
Nu op naar probleem 2, mijn formules kloppend krijgen(maar das iets wat ik zelf mag doen)
Eigenlijk had ik die methode al met ctrl + shift + enter gevonden, maar werkte eerst totaal niet (ging random, maar dat was omdat ik aan het aankloten was met proberenquote:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Private Sub Regel_form_Initialize() TextBox1.Text = "bas" TextBox2.Text = Date TextBox3.Text = Time End Sub Private Sub Regel_form_Activate() TextBox1.Text = "bas" TextBox2.Text = Date TextBox3.Text = Time End Sub Private Sub CommandButton1_Click() TextBox1.Text = "bas" TextBox2.Text = Date TextBox3.Text = Time End Sub Private Sub CommandButton2_Click() Unload Regel_form End Sub |
| 1 2 3 4 5 6 7 | Private Sub UserForm_Initialize() TextBox1.Text = "bas_ini" TextBox2.Text = Date TextBox3.Text = Time End Sub |
Probeer jezelf ook aan te leren om alle textboxen en dergelijke in het formulier een "eigen" naam te geven zodat hij makkelijker herkenbaar is en je volgende code ok beter leesbaar is.quote:Op donderdag 13 juni 2013 11:52 schreef Basp1 het volgende:
Ik ben er achter Ik moest gewoon UserForm_Initialize gebruiken en niet met de naam van dit form.![]()
[ code verwijderd ]
| 1 2 3 4 5 6 | code code code 'commentaar met uitleg moeilijke code |
Niet alleen makkelijk voor jezelf, maar ook (juist) als iemand anders je code moet lezen/aanpassenquote:Op donderdag 13 juni 2013 14:14 schreef Deetch het volgende:
[..]
Probeer jezelf ook aan te leren om alle textboxen en dergelijke in het formulier een "eigen" naam te geven zodat hij makkelijker herkenbaar is en je volgende code ok beter leesbaar is.
Ik gebruik in VBA meestal de volgende conventies:
intnaam = variabele van het type integer (dus geheel getal)
strnaam = variabele van het type string (dus tekst)
dblnaam = variabele van het type double (reeel getal)
boolnaam = variable van het type boolean (TRUE FALSE)
en in formulieren
btnnaam = knop met bepaalde naam
txtnaam = tekstveld
lblnaam = label
chknaam = checkbox
menunaam = pulldown menu
en als je code ingewikkelder wordt helpt het om er af en toe wat commentaar tussen te zetten om uit te leggen wat je doet
[ code verwijderd ]
| 1 2 3 4 5 6 7 8 9 | =ALS(MIN($P$9*($P$6/1000);$P$10*(VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('Calculation Tool'!$P$7+2);ONWAAR)/1000);$P$11*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('Calculatio n Tool'!$P$7+3);ONWAAR)/1000)<'Calculation Tool'!P8;'Calculation Tool'!$P$8;ALS(MIN($P$9* ($P$6/1000);$P$10*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('Calculation Tool'!$P$7+2);ONWAAR)/1000;$P$11*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('Calculatio n Tool'!$P$7+3);ONWAAR)/1000)>$P$12;'Calculation Tool'!$P$12;(MIN($P$9* ($P$6/1000);$P$11*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('Calculation Tool'!$P$7+3);ONWAAR)/1000;$P$10*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('Calculatio n Tool'!$P$7+2);ONWAAR)/1000)))) |
| 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 | =ALS( MIN( $P$9*($P$6/1000) ; $P$10*(VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('C'!$P$7+2);ONWAAR)/1000) ; $P$11*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('C'!$P$7+3);ONWAAR)/1000 ) < 'C'!P8 ; 'C'!$P$8 ; ALS( MIN( $P$9*($P$6/1000) ; $P$10*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('C'!$P$7+2);ONWAAR)/1000 ; $P$11*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('C'!$P$7+3);ONWAAR)/1000 ) > $P$12 ; 'C'!$P$12 ; MIN( $P$9*($P$6/1000) ; $P$11*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('C'!$P$7+3);ONWAAR)/1000 ; $P$10*VERT.ZOEKEN("minmax";Rates!$G:$AG;SOM('C'!$P$7+2);ONWAAR)/1000 ) ) ) |
| 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 | =ALS( MIN( WeightBandRate1*PayableWeight/1000 ; WeightBandRate2*WeightForWeightBand2/1000 ; WeightBandRate3*WeightForWeightBand3/1000 ) < MinTotalTariff ; MinTotalTariff ; ALS( MIN( WeightBandRate1*PayableWeight/1000 ; WeightBandRate2*WeightForWeightBand2/1000 ; WeightBandRate3*WeightForWeightBand3/1000 ) > MaxTotalTariff ; MaxTotalTariff ; MIN( WeightBandRate1*PayableWeight/1000 ; WeightBandRate3*WeightForWeightBand3/1000 ; WeightBandRate2*WeightForWeightBand2/1000 ) ) ) |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |