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

Run-time error 80010108 "Method 'Value'of object 'Range' failed

Status
Niet open voor verdere reacties.

Arito

Gebruiker
Lid geworden
31 mei 2006
Berichten
140
Beste helpers,

Ik heb een macro code als volgt:

Code:
Private Sub Worksheet_Calculate()

    If Workbooks("DTX.xlsb").Worksheets("Ref1").Range("O2").Value <> 0 Then
    Call Mijnmacro
    End If

End Sub

De formule in cel O2 is:
Code:
=IFERROR(IF(OR(M2="OFF",L2<=N2),0,L2),0)

De iferror in die formule heb ik gemaakt puur om er voor te zorgen dat de waarde in deze cel altijd een getal is (en geen #DIV/0, #NA etc). De macro doet het in 99% van de keren goed, want het wordt erg vaak getriggered (some elke seconde of misschien wel iets vaker) maar af en toe krijg ik een VBA error waar ik niet meer uit kan komen en dan crashed heel excel als ik "END" kies in de dialoog box.

In het plaatje hieronder zie je de error gebeuren en zie je ook dat er helemaal geen rare waarde in cel O2 staat waarop die vast zou moeten lopen.

error.jpg

Heeft iemand een idee waardoor ik deze error krijg?

Het is lastig een voorbeeldsheet te maken omdat de error niet altijd gebeurd en de echte sheet vrij groot en zwaar is en vol met gevoelige informatie. Echter als ik een simpele moet maken om het te verduidelijken hoor ik het graag.

Bvd,
 
Is het niet voor-de-hand-liggender de gebeurtenis worksheet _change met target $O$2 te nemen ?

En tegelijkertijd enableevents=false te gebruiken ?
 
Cel O2 verspringt nu van 0 naar >20 door de formule in de cel. Dan moet een macro geactiveerd worden en zal het getal weer teruggaan naar 0. Dan moet niet weer een macro geactiveerd worden. Vervolgens geldt weer exact hetzelfde. Is dat te doen met worksheet_change? Heb je een hele simpele voorbeeldcode die ik zou kunnen bekijken?

Ik neem aan dat ik dan aan het begin en einde van de macro de volgende code moet zetten:

Code:
Application.EnableEvents = False
Application.EnableEvents = True
 
Ik denk dat een voorbeeld bestandje wel handig is. Met daarin ook de macro die aangeroepen wordt.
 
Worksheet_Change werkt voor mij niet denk ik omdat de cel waarnaar gekeken wordt het resultaat van een formule is.

"You can auto run a VBA code, when content of a worksheet cell changes, with the Worksheet_Change event. The change event occurs when cells on the worksheet are changed either by the user, or by any VBA application or by an external link, but not when a cell changes due to recalculation as a result from formula or due to format change. For changes made by calculation, use Worksheet_Calculate event."

Ik heb een voorbeeldsheet gemaakt maar deze is natuurlijk nog niet gecrashed... :(
 
Bekijk bijlage DTX_STRIPPED.xlsb

Je moet wel even F9 doen om de sheet te laten nadenken. De waarden komen normaliter uit andere software addins als Thomson Reuters maar die kan ik er niet in laten want ik verwacht niet dat andere toevallig ook die add-in hebben.

Het rare is dus dat ik niet denk dat de macro op iets 'logisch' vastloopt zoals een error maar op het bestaan van de worksheet_calculate functie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan