1. IF the function is (a) in a general module and (b) is declared PUBLIC and (c) its name is unique within the project), just call it (DoDur(i)) from anywhere within that project with no prefix needed to qualify its location (which is why you declare it as PUBLIC). Just call it by its unique name. However, ... if the function name is not unique, then shame on you for poor planning.
2. IF the function is declared elsewhere in the class module of the same form from which you are calling it, again just call DoDur(i). In this case (call from same form/class module) it does not matter whether you declare it public or private. It should be visible to you.
3. If the function is declared in a different class module than the one from which you are calling it, but still is defined PUBLIC, try directly referencing it without qualifiers, i.e. just plain DoDur(i). NOTE, however, that KitaYama's test for the form's activation is the right idea in that specific case, see below for why.
If the function declaration is in a class module associated with another form, you run the risk of the function not being loaded at the moment because the class module is linked intimately to the form. This risk and its consequences are high enough that you should change the structure and location of the function so that it resides in a general module. General modules are available within the project for as long as the project is open.
There are pitfalls within this "general module" suggestion: The function should not reference things from within its code that would be local to the class module other than the input parameter. In a general module, the local variables of the class module are NOT within scope, i.e. not visible.
This idea, referencing local variables not declared within the function, is called a SIDE EFFECT and is to be vigorously avoided. Things break easily when you allow side effects to creep in.
A further warning is appropriate: IF you qualify the reference (i.e. form.DoDur(1) ) AND the function is not loaded because the form & class module are ALSO not loaded, I believe there is a chance that you would instantiate the form anyway, simply by referencing it in the qualifier. However, any form-based variables would be loaded according to that form's _OPEN, _LOAD, and _CURRENT events for whatever is the first record loaded when the form loads, with no synchronization between what you are doing and that suddenly-instantiated form. I'm not sure on that auto-instantiate, but I recall some discussion on that a couple of years ago. If it happens, it is probably not a good thing.