Appel d'une fonction depuis une autre fonction

  • Initiateur de la discussion Initiateur de la discussion AGLAS
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
580
Retour