Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1790 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel VBA : fonction indiquant #value au démarrage

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel VBA : fonction indiquant #value au démarrage

n°2340711
Laska-
Posté le 29-10-2019 à 00:22:58  profilanswer
 

Bonjour,
 
J'ai une feuille excel relativement simple, mais j'ai juste eu besoin d'utiliser une fonction personnalisée créée dans VBA.
J'utilise ma feuille, tout fonctionne, tout va bien.  
Il y a des cellules dans la feuille qui ont la fonction, et elles fonctionnent.
 
Par contre, quand je ferme le fichier xlsm et que je le réouvre, tout se met en #value ! Evidemment la feuille ne fonctionne plus.
Pour la refaire marcher, je dois aller dans chaque case où j'ai mis la fonction, et simplement cliquer sur la formule et "entrer" pour forcer la cellule à se recalculer.
Le #value disparait et je dois recommencer ça sur toutes les autres cellules ensuite..
Si je fais glisser à partir d'une première cellule fonctionnelle, cela fonctionne également
 
Comment faire pour résoudre ce problème ?
J'ai essayé de toucher au trust center et de modifier les paramètres des macros : tout accepter, et ça ne résout pas le souci.
 
Merci

mood
Publicité
Posté le 29-10-2019 à 00:22:58  profilanswer
 

n°2341711
jojozekil
Woohoo !
Posté le 19-11-2019 à 08:13:22  profilanswer
 

Salut !
 
Est-ce que le mode de calcul est bien sur automatique ?
Ça ressemble à ce qui arrive quand il est sur manuel.
 
Sinon as-tu bien indiqué l'instruction suivante au début de ta fonction ?

Code :
  1. application.volatile


Message édité par jojozekil le 19-11-2019 à 08:13:34

---------------
Le topic de mon feedback ici - Je suis rarement connecté le WE - Mes ventes sont également sur d'autres sites/forums
n°2341755
Laska-
Posté le 19-11-2019 à 18:45:08  profilanswer
 

Et oui, on est bien sur automatique, et application.volatile je l'avais rajouté en tentant de débugger mais ça n'a pas marché..
Normalement c'était pas censé être nécessaire.
 
Sinon, je me dis qu'il y a peut-être une couille avec les liens à d'autres classeurs (la macro est entièrement incluse dans ce classeur là, mais sait-on jamais) : comment peut-on facilement voir l'ensemble des liens à d'autres classeurs ?

n°2342254
Marc L
Posté le 27-11-2019 à 13:58:48  profilanswer
 

           Bonjour,

 

           quel est le format de fichier du classeur ?


Message édité par Marc L le 27-11-2019 à 14:00:02
n°2342330
TotalRecal​l
Posté le 28-11-2019 à 09:11:01  profilanswer
 

                     XLSM d'après le premier post.
 
Tu as essayé en essayant d'arriver à quelque chose de plus simple ? (pas de dépendance à des classeurs extérieurs, moins de données...)
Au démarrage la macro semble s'exécuter ?  
Pas moyen de savoir sur quoi elle bloque ?


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2342502
cluedo
Posté le 29-11-2019 à 23:53:03  profilanswer
 

Bonjour,
 
en mettant un point d'arrêt au début du code de ta fonction personnalisée tu pourrais suivre pas à pas la première exécution et voir où ça coince.
 
Cluedo

n°2342537
Laska-
Posté le 01-12-2019 à 14:13:19  profilanswer
 

Je vais essayer de mettre un point d'arrêt, mais vu les symptômes je pense que le poiny d'arrêt ne sera même pas atteint.

n°2342539
Laska-
Posté le 01-12-2019 à 23:59:52  profilanswer
 

Le point d'arrêt disparait quand on ferme excel.. donc je ne peux pas faire fonctionner cette méthode de test.
 
Impossible de simplifier l'outil, c'est un truc hyper complexe en soi.
 
J'en reviens à une autre question : est-ce qu'il existe un moyen de lister simplement les dépendances à d'autres classeurs ?
 
Enfin, dans mon cas ça ne devrait pas poser de problème, vu que le classeur est capable de calculer les cellules c'est qu'il a tout ce qu'il lui faut.
Il faudrait juste trouver un moyen de le forcer à tout recalculer.

n°2342552
patrice337​40
Avec la réponse, c'est facile.
Posté le 02-12-2019 à 14:08:14  profilanswer
 

Au lieu d'un point d'arrêt, il suffit d'ajouter une ligne d'arrêt :
Stop


---------------
Cordialement, Patrice
n°2342591
Laska-
Posté le 02-12-2019 à 18:28:42  profilanswer
 

Hum..
J'ai mis la ligne stop.
 
Sans surprise : la macro n'est même pas calculée. Le point d'arrêt n'arrête rien du tout.
Le classeur s'ouvre avec toutes mes cases sur "#value"
Et quand je clique sur la formule et que je fais entrée, là on rentre dans le code et on rencontre le point d'arrêt.

mood
Publicité
Posté le 02-12-2019 à 18:28:42  profilanswer
 

n°2342685
patrice337​40
Avec la réponse, c'est facile.
Posté le 04-12-2019 à 16:33:06  profilanswer
 

Peut-être :

Code :
  1. Private Sub Worksheet_Activate()
  2.   Application.Calculate
  3. End Sub


---------------
Cordialement, Patrice
n°2342759
Laska-
Posté le 05-12-2019 à 19:35:28  profilanswer
 

Toujours pas..

 

Il faudrait peut-être trouver un moyen de réécrire les formules éventuellement au prix d'une macro supplémentaire.

 

Edit : j'ai fait ça, tout simplement.
Range(machintruc).formula = maformule avec la macro
J'ai mis ça dans un workbook_open pour minimiser l'emmerdement.
Et ça marche.

 

Par contre c'est une jambe de bois, je serais vraiment curieux de savoir pourquoi ça déconnait !


Message édité par Laska- le 05-12-2019 à 19:54:35
n°2342804
patrice337​40
Avec la réponse, c'est facile.
Posté le 06-12-2019 à 15:16:20  profilanswer
 

Quelle version d'Excel utilises-tu ?
Je me souviens d'un tel bug avec les premières versions de 2003, qui avais était corrigé par une des mises à jour (KB ?????).
J'utilisais :

Code :
  1. Worksheets("Feuil1" ).UsedRange.Replace What:="=", Replacement:="=", LookAt:=xlPart


Message édité par patrice33740 le 06-12-2019 à 15:18:04

---------------
Cordialement, Patrice

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel VBA : fonction indiquant #value au démarrage

 

Sujets relatifs
[Python] Exercice nombre premiers et fonction seuilAfficher / masquer div en fonction d'une liste déroulante (jQuery/JS)
Exporter une feuille excel vers un nouveau classeur en filtrantVBA Word et Sendkeys
VBA Excel, TextBox qui ne fonctionne pas.VBA msgbox?
Macro Excel à executer sur une cellule selectionné[RESOLU] petite aide appel fonction powershell
Erreur code Formulaire de saisie excel 
Plus de sujets relatifs à : Excel VBA : fonction indiquant #value au démarrage


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR