Recalcul - Requête Power Bi - Fonction VBA

Bonjour,

Je viens vers vous car je fais face à un problème qui me rend perplexe, je n'arrive pas à trouver la source du problème. Désolé par avance mais je ne pourrais pas déposer de fichier exemple car ce sont des données confidentielles et lorsque je désire réaliser un fichier test je ne tombe pas dans ce problème.

J'ai un tableau Excel qui contient dans plusieurs cases une même fonction VBA réalisé par mes soins.

Je réalise une requête Power Bi dessus afin de réaliser un tableau croisé dynamique en modifiant mes données. Tout marche séparément, ma fonction VBA a été testé et fonctionne dans tous les cas et d'autre part ma requête réalise le travail attendue dans tous les cas sauf dans 1 configuration.

Ma fonction VBA permet de calculer, à partir de données, un coût, donc si Mode1 alors on fait ca si Mode2 on fait autrement.

Donc j'obtiens un bon résultat

image

En revanche lorsque que je réalise une actualisation de ma requête Power BI, il va recalculer le résultat de mes fonctions (Mode de Calcul automatique), et la pour le MODE1 va transformer le résultat en

image

Puis si j'attend 2 secondes ensuite, il va me recalculer ces erreurs et retrouver le résultat initial.

Si je met le mode de calcul en mode manuel il ne me recalcul pas et je n'ai pas le soucis, mais je voudrais laisser le mode AUTO pour minimiser les sources d'erreurs en cours d'utilisation (oublié de repasser en mode auto).

J'ai donc suivis le recalcul de cette formule en "pas à pas", la seule différence de ces 2 modes de calcul est que dans le mode1 je récupère des coefficients sur un autre onglet par cette fonction :

Function GetCoeffFam(Name As String, Fam As String) As Variant
    Dim Rng As Range
    Set Rng = ThisWorkbook.Names("Famille").RefersToRange.Find(Trim(Fam), LookIn:=xlValues, LookAt:=xlPart)
    If Not Rng Is Nothing Then
        Select Case Name
            Case "PCOEFF":
                GetCoeffFam = Rng.Parent.Range("C" & Rng.Row).Value
            Case "WCOEFF":
                GetCoeffFam = Rng.Parent.Range("D" & Rng.Row).Value
        End Select
    Else
        GetCoeffFam = "Err Famille"
    End If
End Function

C'est à la ligne "Names("Famille").RefersToRange.Find" que le pas à pas saute sans relever d'erreur. C'est-à-dire qu'il passe par cette ligne mais qu'à l'étape suivante (F8), il passe au calcul de la case suivante.

Donc ma question est pourquoi en recalcul normal il n'y a pas de soucis alors qu'au recalcul de la requête Power BI il relève une erreur ?

Et comment faire pour résoudre ce problème ?

Merci d'avance, si cela est déjà arrivé à quelqu'un ca serait cool.

EDIT :

Je viens de trouver une piste même si je trouve cela bizarre, lors du recalcul par actualisation du Tableau lié à la requête, je me suis arrêté à cette fameuse ligne et j'obtiens un message l'erreur lorsque je veux afficher l'adresse du Range. Je précise que la famille existe et que lorsque je le fais lors du recalcul normal j'obtiens le bon resultat.

image
Rechercher des sujets similaires à "recalcul requete power fonction vba"