XL 2016 #NOM? dans cellule alors qu'en double cliquant et en validant, elle se calcule

nicodebut

XLDnaute Nouveau
Bonjour,
Je vous explique mon cas:
J'ai quelques centaines de fichier de la même forme, seule les données changent. Le but est avec une macro de mettre en PDF des onglets (les mêmes de chaque fichier) du fichier. Là, pas de souci, ça fonctionne.
En revanche, dans ma page de garde du fichier, j'ai une formule qui liste un certains nombre de numéro de contrat en se basant sur une liste présente dans une autre feuille du fichier. Le souci est que cette formule me renvoie #NOM? et quand le lance ma macro, j'ai donc cela à la place de la liste des numéros de contrats dans mon PDF.
Si je clique dans la cellule et que je fais "entrée", le résultat est bon... En revanche, cela ne fais rien avec F9
J'ai essayé plusieurs choses:
- approuvé les emplacements des fichiers excel
- approuvé l'emplacement de mon fichier excel avec lequel le lance la macro
- enlever toute sécurité liée aux macro qui pourrait mettre le fichier en mode protéger
- insérer dans la macro après ouverture du fichier un remplacement du "=" dans la cellule par un "=" pour forcer le calcul

Rien n'y fait... Je suis désespéré et n'ai pas envie d'ouvrir mes centaines de fichier un par un pour faire afficher ce résultat!
Est-ce qu'il existe une astuce avec vba?
En vous remerciant par avance, je vous joins le fichier en question.
 

Pièces jointes

  • fichier test.xlsm
    21.8 KB · Affichages: 14
Solution
Est-ce possible qu'il y ait un rapport entre le compte qui modifie le fichier??
Je ne pense pas non.
Et ça ne me choque pas outre mesure que la propriété soit différente si tu l'ouvres directement ou si c'est la macro qui l'ouvre.

Au passage, je ne pense pas que Application.ScreenUpdating = False puisse aider beaucoup dans ton cas. Autant mettre en commentaire tant que tu as le pb.
A tester, après ouverture du fichier :
VB:
    With ActiveWorkbook.Sheets("Sommaire").Columns("I")
        .Dirty
        .Calculate
    End With
    Do Until Application.CalculationState = xlDone
        DoEvents
    Loop
Tant qu'à faire, travailler hors réseau pour éliminer cette partie.

Au pire, tu pourras toujours évaluer en vba la valeur...

eriiic

XLDnaute Barbatruc
Est-ce possible qu'il y ait un rapport entre le compte qui modifie le fichier??
Je ne pense pas non.
Et ça ne me choque pas outre mesure que la propriété soit différente si tu l'ouvres directement ou si c'est la macro qui l'ouvre.

Au passage, je ne pense pas que Application.ScreenUpdating = False puisse aider beaucoup dans ton cas. Autant mettre en commentaire tant que tu as le pb.
A tester, après ouverture du fichier :
VB:
    With ActiveWorkbook.Sheets("Sommaire").Columns("I")
        .Dirty
        .Calculate
    End With
    Do Until Application.CalculationState = xlDone
        DoEvents
    Loop
Tant qu'à faire, travailler hors réseau pour éliminer cette partie.

Au pire, tu pourras toujours évaluer en vba la valeur, faire ton pdf et ne pas sauvegarder le classeur (ou restituer la formule).
Si tu as une version récente d'excel, tu peux la remplacer par :
Code:
=JOINDRE.TEXTE(CAR(10);VRAI;Sommaire!I11:I23)
eric
 

nicodebut

XLDnaute Nouveau
Bonjour Eric,

J'ai testé la boucle mais rien n'y a fait. D'ailleurs, le but est de dire que tant que le calcul n'est pas fini, la macro met à jour les formules?
J'ai testé ensuite la formule JOINDRE.TEXTE => GREAT!! ça fonctionne. C'était donc bien la formule qui posait souci en vba...
Merci beaucoup pour le temps passé sur mon souci!
bonne journée à tous, je clos donc le sujet!
Nico
 

Discussions similaires

Réponses
31
Affichages
871

Statistiques des forums

Discussions
312 046
Messages
2 084 849
Membres
102 686
dernier inscrit
Franck6950