Formule Excel qui ne se lance pas

Bonjour amis Excellents !

Je viens vers vous car une petite interrogation me turlupine !

Suite à l'aide d'utilisateurs de ce forum, j'avais réussis à créer une formule permettant de calculer une médiane avec des conditions. Cette formule marche parfaitement, seulement voilà, quand je met mon fichier à jour, les cases dans lesquelles sont mes formules ne se lancent pas, et je ne comprend pas pourquoi !

J'ai presque tout essayer je pense ("actualiser", "F9", "calculer maintenant", changer la format de cellule, ...), mais la formule ne sait met jamais à jour... Le seul moeyn pour que les valeurs apparaissent est de cliquer dans la barre de formule puis appuyer sur "Entrée" afin d'afficher le résultat attendu. En soi ça ne poserait pas de problème si j'avais à faire cette manipulation qu'une seule fois, mais malheureusement je dois beaucoup le faire...

J'ai également essayer une macro donnée par une personne ayant eu le même problème que moi :

Sub toto ()

Dim feuille As Worksheet

For Each feuille In ThisWorkbook.Worksheets

feuille.EnableCalculation = True

Next feuille

End Sub

Mais cela n'a rien changer à mon problème... Je ne peux pas fournir mon fichier car c'est un document confidentiel...

J'espère que quelqu'un qui a déjà rencontrer ce problème saura m'éclairer !

Merci d'avance !

Pierre

Bonjour,

Tu ne fournis pas la formule, tu ne fournis pas de fichier ! Rien à examiner donc ! Désolé pour toi !

Cordialement !

MFerrand a écrit :

Bonjour,

Tu ne fournis pas la formule, tu ne fournis pas de fichier ! Rien à examiner donc ! Désolé pour toi !

Cordialement !

Comme je l'ai dis, je ne peux pas fournir le fichier... Je ne demande pas à ce qu'on me résolve le problème, je demande si la situation est connue et/ou déjà arrivée à quelqu'un et comment la personne en question s'en est sortie, pck je ne vois pas !

Je pense avoir décris suffisament clairement la situation pour que le problème renconrté soit compris...

Je peux toujours essayer de faire un fichier similaire, sans les données sensibles, mais je pense que ça marchera du coup, c'est bizarre comme truc...

Pierre

Bonjour,

Regardez, si cela ne provient pas d'un format d'une cellule et/ou date version English French

recalcul du code :

Sub toto()
    Dim feuille As Worksheet
    For Each feuille In ThisWorkbook.Worksheets
        feuille.EnableCalculation = True
    Next feuille
End Sub

crdlt,

André

Anonymiser ou déconfidentialiser un fichier, c'est ton problème ! Le nôtre c'est que pour cerner un dysfonctionnement il faut pouvoir l'examiner ou le reproduire...

En outre comme je l'ai indiqué, mais tu n'as peut-être pas tout lu !, tu ne donnes pas toutes les informations relatives au problème : tu parles de non recalcul d'une formule, tu ne reproduis pas ladite formule... dans ces conditions tu nous demandes de l'inventer !

Ce faisant on résoudra peut-être un problème que personne n'a encore posé, mais les probabilités que ce soit le tien... !

Andre13 a écrit :

Bonjour,

Regardez, si cela ne provient pas d'un format d'une cellule et/ou date version English French

André

Non plus, j'ai également vérifier cet aspect là suite à mes recherches sur internet...

@MFerrand voici la formule en question :

Function mediane_sips(pl1 As Range, crit1 As String, pl2 As Range, crit2 As String, taille As Integer)
    Dim dataM, data1, data2
    Dim i As Long, nb As Long
    Dim ObjSortedList As Object
    Set ObjSortedList = CreateObject("System.Collections.ArrayList")
    Dim plM As Range
    Set plM = Sheets("Feuil1").Range("K2:K" & taille & "")

    dataM = plM.Value: data1 = pl1.Value: data2 = pl2.Value

    For i = 1 To UBound(dataM)
        If data1(i, 1) = crit1 Then
            If data2(i, 1) = crit2 Then
                If dataM(i, 1) <> "" Then
                    ObjSortedList.Add dataM(i, 1)
                End If
            End If
        End If
    Next i
    ObjSortedList.Sort
    nb = ObjSortedList.Count
    If nb Mod 2 Then
        mediane_sips = ObjSortedList(nb \ 2)
    Else
        mediane_sips = (ObjSortedList(nb \ 2 - 1) + ObjSortedList(nb \ 2)) / 2
    End If
End Function

J'espère que ça permettra de mieux cibler mon problème ! Si non, demain j'essaierai de fournir un fichier construit de la même manière, en retirant les données sensibles !

Encore merci,

Pierre

Déjà, tu introduis la commande permettant à la fonction de se recalculer...

Function mediane_sips(pl1 As Range, crit1 As String, pl2 As Range, crit2 As String, taille As Integer)
    Dim dataM, data1, data2
    Dim i As Long, nb As Long
    Dim ObjSortedList As Object
    Dim plM As Range
    Application.Volatile
    Set ObjSortedList = CreateObject("System.Collections.ArrayList")
    Set plM = Sheets("Feuil1").Range("K2:K" & taille & "")
    dataM = plM.Value: data1 = pl1.Value: data2 = pl2.Value
    For i = 1 To UBound(dataM)
    '...

à la suite des déclarations (qu'il vaut mieux par ailleurs avoir en tête de procédure sans les intercaler avec du code exécutable...)

Tu t'assures que tu es bien en mode Calcul automatique.

Et tu vois si ta fonction se recalcule ou non lors de modification de données...

C'est exactement ce qu'il me manquait !

Merci beaucoup pour ton aide et ta patience !

Pierre

De rien ! mais à l'avenir pense à fournir les précisions utiles dès le départ pour évaluer la question : ici tu parles d'abord de formule, sans la reproduire, et surtout sans préciser que la formule repose sur une fonction personnalisée, ce qui ne permet pas d'orienter d'emblée les intervenants dans la bonne direction...

Bonne continuation.

Rechercher des sujets similaires à "formule qui lance pas"