Appel d'une fonction depuis une autre fonction

AGLAS

XLDnaute Nouveau
Bonjour ou Bonsoir le forum,

Je bataille depuis quelques temps avec une fonction personalisée que je parviens pas à faire aboutir ; celle-ci appelle une autre fonction censée lui retournée une valeur booléenne. Le pb c'est que la fonction en question ne retourne rien. Visiblement, il y a quelque chose qui m'échappe, d'autant que lorsque j'exécute le tout pas à pas c'est encore plus déroutant... Ci-après le code et ci-joint la partie du classeur posant pb (module 1). Merci pour toute suggestion :

Code:
'Déclarations
________________________________________________
Public Const col_selection As Integer = 5 'pointeur sur options sélectionnées dans feuille <Plan>
Public Const col_prec As Integer = 3

dim fixes() As Integer
dim lignes() As Boolean
dim chemin(), longueur As Single
___________________________________________________

Function DUREE2(ParamArray ref_index() As Variant) As String

    
    k = 0
    'initialisation des chemins fixes et non fixes
    For i = 0 To UBound(ref_index())
        If Worksheets('Plan').Cells(ref_index(i), col_selection) = 'Vrai' Then
            
            ReDim Preserve lignes(k)
            ReDim Preserve chemin(k)
            ReDim Preserve fixes(k)
            
            'recherche des prédecesseurs de la tâche i
            If Worksheets('Plan').Cells(ref_index(i), col_prec) = '' Then
                'pas de prédécesseur -> chemin fixe
                chemin(k) = 0
            Else
                'prédécesseur(s) -> chemin non fixe
                chemin(k) = -1
            End If
            lignes(k) = ref_index(i)
            fixes(k) = False
            k = k + 1
        End If
    Next i
    
    'CI-APRES L'APPEL DE FONCTION POSANT PB        
    r = Nonfixe(fixes())
        
    'reste du traitement...
    
    DUREE2 = r
    
End Function
______________________________________________________

Function Nonfixe(fixes() As Integer) As Boolean
        
    Nonfixe = True
    
    For i = 0 To UBound(fixes())
        If fixes(i) = False Then
            Nonfixe = False
            End
        End If
    Next i
    
End Function
[file name=Function_20050902002527.zip size=40375]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Function_20050902002527.zip[/file]
 

Pièces jointes

  • Function_20050902002527.zip
    39.4 KB · Affichages: 45

Hervé

XLDnaute Barbatruc
Supporter XLD
Bonjour aclas, le forum

:)

Aglas, je n'ai pas compris à quoi servaient tes fonctions, mais il me semble que le END dans la fonction nonfixe est de trop.

En effet ce simple mot met fin à la fonction et vide les variables (costaud le end :) )

en supprimant celui-ci , ta fonction durée renvoi faux, je ne sais pas si le résultat est bon, mais c'est toujours mieux que VALEUR.

En espérant t'avoir aidé

Passe une bonne journée

salut
 

Discussions similaires

Réponses
0
Affichages
572

Statistiques des forums

Discussions
300 793
Messages
1 987 230
Membres
209 744
dernier inscrit
nldurand