• 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.

een bepaald aantal bereikt

Status
Niet open voor verdere reacties.

RicoMCBV

Nieuwe gebruiker
Lid geworden
21 apr 2020
Berichten
2
Goedemorgen,

Heb een vraag of dit misschien ook mogelijk is.
Ben bezig om een lijst te maken en als bv. 40 punten zijn bereikt dat deze weer op nul gaat, en in het vakje ernaast een 1 komt te staan met een datum wanneer deze is bereikt.
Hoop echt dat dit kan en dit zal me heel veel helpen.

M.vr.gr.
Ricopunten voor excel.jpg
 
Laatst bewerkt:
Vast wel. Plaats even een voorbeeldbestandje en je wordt snel geholpen
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2")) Is Nothing Then
 Target.Offset(, -1) = 40 - Target
    If Target = 40 Then
     Target = 0
     Target.Offset(, 1) = Target.Offset(, 1) + 1
     Target.Offset(, 2) = Date
   End If
End If
End Sub

Hier moet het wel mee lukken.
Pas de bereiken even aan naar je eigen bestand.

Je kunt ook even in mijn bestand kijken als je er niet uit komt. Of als nog je bestand plaatsen
 

Bijlagen

Laatst bewerkt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [COLOR="#FF0000"]Range("E:E")[/COLOR]) Is Nothing Then
 Target.Offset(, -1) = 40 - Target
    If Target = 40 Then
     Target = 0
     Target.Offset(, 1) = Target.Offset(, 1) + 1
     Target.Offset(, 2) = Date
   End If
End If
End Sub

Deze voor in jouw bestand?
 
@JVeer,
Maak gebruik van 'application.enableevents false en true'.

Je code loopt onnodig 6x als je het getal 40 invult.
 
@Harry bedankt voor de feedback. Je bedoelt dat hij onder de if target = 40 moet komen te staan omdat de target daaronder weer verandert? En waardoor je dus in een loop komt
 
maakt in principe niet veel uit of hij net na de 1e of na de 2e if ...endif staat, het voornaamste is dat hij uit staat voor hij die 3 celwaarden verandert.
Het leest ook wel vlotter als je ".value" aan je ganse code toevoegt, anders zal het wel een keer fout gaan.
 
@Ok bedankt Harry en Cow, zo dan

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E:E")) Is Nothing Then
Application.EnableEvents = False
 Target.Offset(, -1).Value = 40 - Target.Value
    If Target.Value = 40 Then
     Target.Value = 0
     Target.Offset(, 1).Value = Target.Offset(, 1).Value + 1
     Target.Offset(, 2).Value = Date
   End If
End If
Application.EnableEvents = True
End Sub
 
Laatst bewerkt:
ik had deze morgen te snel gelezen, op deze regel verander je ook een cel en wordt die change_event een 2e keer getriggerd.
Dus voor deze regel moet je enable staan, sorry voor het foutje.
De rest is ok
Code:
Target.Offset(, -1).Value = 40 - Target.Value
 
Laatst bewerkt:
Voordat er wijzigingen plaatsvinden is beter.

De False dus twee regeltjes hoger.
Zet met F9 maar eens een onderbrekingspunt en vul iets in.
Daarna met F8 de code doorlopen.
Zo zie je wat er gebeurd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan