Détecter formule(s) supérieure(s) à 8192 caractères ? Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
gloub
Membre impliqué
Membre impliqué
Messages : 1'113
Inscrit le : 17 juillet 2007
Version d'Excel : 2003 sur PC + 365 sur Mac

Message par gloub » 20 décembre 2014, 19:13

Bonjour le Forum,

Après un plantage, Excel me signale une erreur dont je n’arrive pas à me défaire, et qui empêche d’enregistrer mon fichier.

J’obtiens le message suivant :
« La longueur d'une ou plusieurs formules de ce classeur dépasse la limite autorisée de 8192 caractères. Pour éviter ce problème, enregistrez le classeur au format Classeur binaire Excel. »

…malheureusement, Excel n’indique pas où se trouve(nt) le(s) problème(s).

Peut-on faire ça en VBA ? (càd : trouver les cellules incriminées dans un classeur).

Merci !
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'135
Appréciations reçues : 349
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 20 décembre 2014, 19:41

Bonjour,

essaie avec ça :
Sub longFormules()
    Dim sh As Worksheet, c As Range
    For Each sh In Worksheets
        sh.Activate
        For Each c In Selection.SpecialCells(xlCellTypeFormulas)
            If Len(c.Formula) > 8180 Then MsgBox c.Address & " : " & Len(c.Formula)
        Next c
    Next sh
End Sub
J'ai mis un peu moins que 8192

eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Avatar du membre
gloub
Membre impliqué
Membre impliqué
Messages : 1'113
Inscrit le : 17 juillet 2007
Version d'Excel : 2003 sur PC + 365 sur Mac

Message par gloub » 20 décembre 2014, 21:16

Bonjour, et merci beaucoup eriiic,

Ce message d'erreur étant hyperstressant (je finis un travail super important et Excel refusait d'enregistrer), j'ai trouvé une issue provisoire en copiant dans un autre classeur la feuille active lors du plantage.
Excel a bien voulu enregistrer le nouveau classeur.
Mais du coup : je n'arrive plus à déclencher le message d'erreur et je ne peux donc pas tester ton code !!!

Désolé de t'avoir fait trimer pour rien.

J'espère au moins que ça aidera quelqu'un dans la même situation (ou peut-être moi si Excel replante ?).

Merci encore.
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'135
Appréciations reçues : 349
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 20 décembre 2014, 23:35

Ce petit programme n'attend pas une erreur, il balaie toutes les formules et annonce les formules plus longues que la taille indiquée.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message