Vraag & Antwoord

Anders (software)

2 Excel (formule) vragen

6 antwoorden
  • Ik heb 2 vragen en hoop dat één van jullie daar een antwoord op heeft Het gaat om een dartsscorebord in Excel.<P>In cel K7 wordt terug geteld van 501 naar 0 door simpelweg de ingevoerde scores van de 501 af te trekken. Nu het volgende: Ik zou graag willen dat als in cel K7 de waarde op 0 uitkomt de legstand (in cel G7) automatisch met 1 punt word verhoogd en vervolgens dan ook bij een legstand van 3 punten de setstand (in cel I7) automatisch met 1 punt omhoog gaat. Dit moet kunnen alleen ben ik even kwijt hoe dit moet.<P>Dan vraag 2: Aan de hand van de ingevoerde scores in cel O8 t/m O32 en P8 t/m P32 worden ook de statistieken per speler berekend. (aantal 100+, 140+, 180, Gemiddelde per pijl en per beurt) Als er nu aan een nieuwe leg word begonnen en ik hier voor de scorelijst wis verdwijnen ook alle statistieken. Zo kan ik dus nooit de statistieken over de hele wedstrijd bekijken maar alleen per leg. Kan ik er voor zorgen dat de statistieken per speler worden berekend en bewaard tot het einde van de wedstrijd ook al wis ik de scorelijst?<P>Alvast bedankt voor jullie reacties. Cor
  • Vraag 1:<BLOCKQUOTE><font size="1" face="Arial, Helvetica, Sans Serif">code:</font><HR><pre>Sub PuntenTelling() Dim intScore As Integer Dim intLegstand As Integer Dim intSetstand As Integer intScore = ActiveSheet.Range("K7").Value intLegstand = ActiveSheet.Range("G7").Value intSetstand = ActiveSheet.Range("I7").Value If intScore = 0 Then intLegstand = intLegstand + 1 ActiveSheet.Range("G7").Value = intLegstand End If If intLegstand = 3 Then intSetstand = intSetstand + 1 ActiveSheet.Range("I7").Value = intSetstand ActiveSheet.Range("G7").Value = 0 End If End Sub</pre><HR></BLOCKQUOTE>
  • Ik heb in vba de code ingevoerd zoals in je voorbeeld. Alleen als nu de score op 0 punten uitkomt gaat niet de legstand met 1 punt omhoog maar blijft gewoon doortellen. Ergens voorbij de 200 komt dan de volgende foutmelding:<P>Fout 28 tijdens uitvoering Onvoldoende stackruimte<P>Doe ik nu iets fout of klopt er iets niet in de code? De setstand veranderd ook niet.<P>
  • Ik heb geen idee. Hoe heb je het aanroepen van de Sub geregeld? Bij mij werkt het prima. Ik had hem voor het gemak maar even aan een button gekoppeld.
  • Zoals je hier onder kunt zien zo heb ik de macro in vba ingevoerd.<P> Sub puntentelling2() ' ' puntentelling2 Macro ' '<P>' Dim intScore As Integer Dim intLegstand As Integer Dim intSetstand As Integer intScore = ActiveSheet.Range("K7").Value intLegstand = ActiveSheet.Range("G7").Value intSetstand = ActiveSheet.Range("I7").Value If intScore = 0 Then intLegstand = intLegstand + 1 ActiveSheet.Range("G7").Value = intLegstand End If If intLegstand = 3 Then intSetstand = intSetstand + 1 ActiveSheet.Range("I7").Value = intSetstand ActiveSheet.Range("G7").Value = 0 End If End Sub<P>Vervolgens heb ik in vba bij Excel – objecten het volgende ingetypt:<P>Private Sub Worksheet_Change(ByVal Target As Excel.Range) Puntentelling puntentelling2 End Sub<P>Ik heb namelijk al een macro die het één en ander berekend ( zoals het onder de 0 punten of op 1 punt uitkomen van de score) dus heb ik deze maar puntentelleing2 genoemd en deze vervolgens toegevoegd zoals je hier boven kunt zien.<P>Of had ik de nieuwe macro kunnen toevoegen aan de reeds bestaande macro? Misschien gaat het daarom niet goed.<P>(Weet trouwens niemand een antwoord op vraag 2?)
  • <BLOCKQUOTE><font size="1" face="Arial, Helvetica, Sans Serif">quote:</font><HR>Originally posted by Cor vd H: <B> Dan vraag 2: Aan de hand van de ingevoerde scores in cel O8 t/m O32 en P8 t/m P32 worden ook de statistieken per speler berekend. (aantal 100+, 140+, 180, Gemiddelde per pijl en per beurt) Als er nu aan een nieuwe leg word begonnen en ik hier voor de scorelijst wis verdwijnen ook alle statistieken. Zo kan ik dus nooit de statistieken over de hele wedstrijd bekijken maar alleen per leg. Kan ik er voor zorgen dat de statistieken per speler worden berekend en bewaard tot het einde van de wedstrijd ook al wis ik de scorelijst?<P></B><HR></BLOCKQUOTE><P>Je zou iets kunnen bedenken om de statistieken aan het eind van iedere leg naar een nieuw cellenbereik te kopiëren. In onderstaand voorbeeld wordt er even simplificerend van uitgegaan dat de statistiek van de huidige leg in C2 t/m C4 staat. Door via een command button de code te activeren worden deze waarden gekopieerd naar D2 t/m D4. Aan het eind vd volgende leg worden de statistieken gekopieerd naar E2 t/m E4 etc:<P><BLOCKQUOTE><font size="1" face="Arial, Helvetica, Sans Serif">code:</font><HR><pre> Private Sub CommandButton1_Click()<P>'leg 1 If ActiveSheet.Range("D2").Value = "" Then ActiveSheet.Range("D2").Value = ActiveSheet.Range("C2") ActiveSheet.Range("D3").Value = ActiveSheet.Range("C3") ActiveSheet.Range("D4").Value = ActiveSheet.Range("C4") 'leg 2 ElseIf ActiveSheet.Range("D2").Value &gt; 0 And ActiveSheet.Range("E2").Value = "" Then ActiveSheet.Range("E2").Value = ActiveSheet.Range("C2") ActiveSheet.Range("E3").Value = ActiveSheet.Range("C3") ActiveSheet.Range("E4").Value = ActiveSheet.Range("C4") 'leg 3 ElseIf ActiveSheet.Range("E2").Value &gt; 0 And ActiveSheet.Range("F2").Value = "" Then ActiveSheet.Range("F2").Value = ActiveSheet.Range("C2") ActiveSheet.Range("F3").Value = ActiveSheet.Range("C3") ActiveSheet.Range("F4").Value = ActiveSheet.Range("C4")<P>End If End Sub </pre><HR></BLOCKQUOTE><P>Zo worden de statistieken dus per leg bewaard (ik ben geen darter en heb dus geen flauw idee hoeveel legs er kunnen zijn; bovenstaande methode kan ietwat uit de klauwen lopen)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.