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

Tellertje vanaf nul

Status
Niet open voor verdere reacties.

Tommy1

Gebruiker
Lid geworden
1 sep 2007
Berichten
87
Hallo allemaal,
Ik heb een sheet waarin een tellertje staat. Dit tellertje loopt via een macro.
Nu is het zo: Cel E7 en M7 zijn leeg ook geen nul. Nu komt in cel E7 een getal te staan dan moet als het goed is het tellertje gaan werken. De teller zit in Cel V5.
De teller werkt echter, na de tweede keer in cel E7 een getal komt te staan.
Ik zou graag zien de teller vanuit niets of vanuit nul gaat werken.
Kan dat wel en hoe moet ik de macro aanpassen?
Ik hoop dat het zo duidelijk is. De macro staat hieronder.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$7" Or Target.Address = "$M$7" Then
    If Range("$D$7").Value <> Range("$M$7").Value Then
        Range("$V$5").Value = Range("$V$5").Value + 1
    End If
End If
    If Target.Address = "$F$7" Or Target.Address = "$O$7" Then
    If Range("$F$7").Value <> Range("$O$7").Value Then
        Range("$X$5").Value = Range("$X$5").Value + 1
    End If
End If
End Sub


Gr. Tommy
 
Laatst bewerkt door een moderator:
Nergens E7 in je macro te vinden. Moet D7.Address niet E7.Address zijn ?

Erik
 
Nog een aanvulling op mijn vraag.
Het getal in cel E7 word geplaatst door een macro. In die macro zit een regel "Plakken speciaal" met Waarde plakken.
Als ik met de hand in cel E7 typt werkt het tellertje wel.

Gr. Tommy
 
Sorry hoor,

Maar het moet cel D7 zijn en niet E7. Dus de macro is wel jiust.
 
Bij mij werkt je macro prima. Ook als de waarden van D7 of M7 met een andere macro worden gewijzigd. Ligt het misschien aan de macro waarmee de waarden worden aangepast?!?:confused:
 
Cel D7 word gevuld met deze macro.


Code:
Application.ScreenUpdating = False

   Sheets("Darten").Select
    Range("E338:G359").Select
    Selection.Copy
    Sheets("Darten overzicht").Select
    Range("D7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D7").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    Application.ScreenUpdating = True

End Sub
Tommy
 
Laatst bewerkt door een moderator:
Beste helper,

Ik heb nog een beetje "gerommeld" maar ik kom er niet uit.

Als ik cel D7 en M7 met behulp van een macro gerecet of weer op nul gezet heb en dan de macro met plakken speciaal--waarden cel D7 weer heb gevuld dan blijft cel V5 op nul staan.

Als ik alles met de hand doe werkt het wel.

Tommy
 
Ik heb het idee dat de regel
Code:
Application.ScreenUpdating = False
er voor zorgt dat het event niet wordt 'getriggered'. Als je die nou eens weghaalt?
 
Beste Tommy1
De fout zit erin dat je een bereik("E338:G359") selecteerd op je sheet Darten en dit naar 1 cel ("D7") kopieërt.
Probeer maar eens 1cel i.p.v. een bereik te kopieëren en je zal zien dat je tellertje perfect werkt.

Rudi
 
Hoi Tommy1,

Doordat je meerdere cellen kopieert is de range niet alleen maar D7. Als je dus vraagt of de range (alleen) gelijk is aan D7, dan geeft Excel een False terug. Maar er is een oplossing! :D

Via de functie "Intersect" kun je bepalen of in de Target ook de cel D7 zit. Zie onderstaande code voor een wel werkende subroutine. Succes!

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim isect1 As Range, isect2 As Range

    
    Set isect1 = Application.Intersect(Target, Range("$D$7"))
    Set isect2 = Application.Intersect(Target, Range("$M$7"))
    If Not (isect1 Is Nothing) Or Not (isect2 Is Nothing) Then
        If Range("$D$7").Value <> Range("$M$7").Value Then
            Range("$V$5").Value = Range("$V$5").Value + 1
        End If
    End If
    
    Set isect1 = Application.Intersect(Target, Range("$F$7"))
    Set isect2 = Application.Intersect(Target, Range("$O$7"))
    If Not (isect1 Is Nothing) Or Not (isect2 Is Nothing) Then
        If Range("$F$7").Value <> Range("$O$7").Value Then
            Range("$X$5").Value = Range("$X$5").Value + 1
        End If
    End If

End Sub
 
Beste helpers,

Ik ben nog maar een leek op macrogebied. Maar ik had de volgende oplossing gevonden.
Het tellertje zit in cel V5. Hij had moeten verspringen als cel D7 gevuld zou worden. Maar omdat dat niet gebeurt heb ik een regeltje er tussen gezet.

Als ik cel D7 vult moet in cel O5 een 1 komen.
De macro verandert door.
Als in cel O5 een 1 komt te staan moet V5 veranderen.
En dat doet hij wel.

Het is misschien een boerenoplossing maar het werk wel.

Alle bedankt voor het mee denken

Gr. Tom
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan