• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

De eerste drie waarden tellen in een bereik.

Status
Niet open voor verdere reacties.
Vervang de hele code in je Module door deze:
Code:
Public Function caramboles(c As Integer)
Dim r As Range
 i = 1
 For Each r In Range("B4:B1000").SpecialCells(2, 1)
  If r = c Then
   caramboles = caramboles + r.Offset(, 3)
     i = i + 1: If i > 3 Then Exit For
  End If
 Next
End Function
Public Function beurten(c As Integer)
Dim r As Range
 i = 1
 For Each r In Range("B4:B1000").SpecialCells(2, 1)
  If r = c Then
   beurten = beurten + r.Offset(, 4)
     i = i + 1: If i > 3 Then Exit For
  End If
 Next
End Function
 
Pieter, kun je svp de gewone knop gebruiken om te reageren op een bericht in plaats van de 'quote' knop ?
Zinloos quoten wordt niet gewaardeerd.
 
@Cobbe

werken met arrays is het devies:

Code:
Function F_caram(c As Integer)
 sn=cells(4,2).currentregion.resize(,4)

 For j=1 to ubound(sn)
  If sn(j,1) = c Then  F_caram = F_caram + sn(j,4)
 Next
End Function

Function F_beurt(c As Integer)
 sn=cells(4,2).currentregion.resize(,5)

 For j=1 to ubound(sn)
  If sn(j,1) = c Then  F_beurt = F_beurt + sn(j,5)
 Next
End Function
 
Bedankt voor het (gratis?) advies, ben nog van de oude school en loop een beetje achter.:)
 
@Cobbe

Donaties zijn immer welkom. ;)
 
@Cobe

Met de nieuwe code lijkt het erop dat F9 niet wil werken. Moet elke cel handmatig enteren om resultaat te zien.
 
Heb je de berekening op handmatig gezet misschien?
 
Ja klopt, maar met F9 gebeurt er niets.

Krijg nu ook een foutmelding over een kringverwijzing
 
Laatst bewerkt:
Plak deze code eens achter je werkblad:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("Blad1").UsedRange.Columns("X:Y").Calculate
End Sub
 
Formules weer op auto gezet.

Maar hij telt niet automatisch op.
Wel in de andere formules maar niet bij de 'module'.
 
Heb je die code uit post #29 wel achter je werkblad geplakt.
 
Neen, kijk eens in de bijgevoegde foto.

Bij mij is dat Blad1 bij jouw bestand heet dat blad waarschijnlijk anders, maar het moet het blad zijn waarin je gegevens staan en de berekeningen gebeuren.
 
Als ik deze code plak;

Public Function caramboles(c As Integer)
Dim r As Range
i = 1
For Each r In Range("B8:B1000").SpecialCells(2, 1)
If r = c Then
caramboles = caramboles + r.Offset(, 3)
i = i + 1: If i > 3 Then Exit For
End If
Next
End Function
Public Function beurten(c As Integer)
Dim r As Range
i = 1
For Each r In Range("B8:B1000").SpecialCells(2, 1)
If r = c Then
beurten = beurten + r.Offset(, 4)
i = i + 1: If i > 3 Then Exit For
End If
Next
End Function
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("Uitslagen").UsedRange.Columns("X:Y").Calculate
End Sub

Dan krijg ik de melding: De formule bevat tekst die niet wordt herkend.

Copy-Paste gedaan, met alleen de begin cel gewijzigd.
En de naam van het blad aangepast
 
Laatst bewerkt:
@Cobbe: Een gouden regel bij het schrijven van een UDF is dat alle (ja ALLE) cellen die voor de UDF noodzakelijk zijn als argumenten aan de functie worden doorgegeven. Dus nooit cellen uitlezen in de UDF die er niet als een argument aan doorgegeven zijn. Om voor de hand liggende redenen :)
 
De antwoorden lezen en uitvoeren zoals aangegeven wil wel eens helpen.
De 2 codes startend met Public Function dien je in een Modeule te plakken

en deze code achter het werkblad, hoe gemakkelijk kan het zijn:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("Uitslagen").UsedRange.Columns("X:Y").Calculate
End Sub

How did i do it.png
 
Laatst bewerkt:
Sorry, sorry,

Helemaal mijn fout. Niet opgelet.

Het werkt weer.

Heb ik nog een vraag, Klopt mijn veronderstelling dat met deze code alleen de gegevens van de B-kolom worden geteld?
Zo ja, is dat uit te breiden met de K-Kolom?
 
In(uit) de B-kolom wordt niets geteld, daar wordt enkel gekeken of het nummer overeenstemt met het gevraagde.

En ik kolom K staat niets, dus ook niets te tellen.

De caramboles worden geteld uit kolom E
De beurten worden geteld uit kolom F
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan