[COM] Zapper un msgbox [Contourné]
Bonjour à tous !
Je vous explique mon problème :
Je bosse sur une appli PHP qui dois ouvrir un fichier Excel 2003 (format XLS), le remplir avec mes données issues de MySQL, enregistrer le fichier temporaire sur mon serveur et le proposer au téléchargement.
Excel est installé sur le serveur, c'est le serveur qui gère les modifications, à la limite, j'ai pas besoin d'avoir Excel sur le poste client.
Globalement, ça marche à peu près, le seul souci c'est que dans mon modèle j'ai des cellules dont la formule utilise une fonction pour faire un total et, si le total est supérieur à 10, afficher un MsgBox d'erreur.
Pour info, je peux vous donner le code de la fonction Msg (que de toute façon je n'ai pas le droit de modifier )
L'appli Excel est lancée sur le serveur, donc le MsgBox (qui me paralyse le reste du process) est affiché... sur le serveur !!
Et comme mon pauvre utilisateur qui a cliqué dans sa page web n'est pas assis devant le serveur, il n'a aucun moyen de fermer cette boite de dialogue.
J'ai pas mal écumé les forums mais je n'ai rien trouvé qui puisse m'aider.
En fait il faudrait :
* soit que je puisse faire en sorte que la cellule de total ne fasse pas son appel à la fonction Msg() (on peut pas "freezer" une cellule ?)
* soit que je puisse valider automatiquement ce satané popup sans qu'il bloque mon process
J'ai essayé (sans succès):
* DisplayAlerts = false
* Interactive = false
J'ai aussi testé avec Calculation = -4135 pour bloquer la mise à jour des cellules de totaux, j'ai l'impression que ça fonctionne, jusqu'à ce que je déclenche la sauvegarde de mon fichier avec SaveAs(...) qui fait apparaitre mon cher popup 😕
Je précise que comme mon fichier Excel est un document officiel de la boite (et qu'il est censé le rester une fois que je l'ai rempli ^^) j'ai pas le droit de modifier le code des macros, fonctions, cellules, etc...
Si quelqu'un a la solution, je suis preneur 😀
Bonjour à tous !
Je vous explique mon problème :
Je bosse sur une appli PHP qui dois ouvrir un fichier Excel 2003 (format XLS), le remplir avec mes données issues de MySQL, enregistrer le fichier temporaire sur mon serveur et le proposer au téléchargement.
Excel est installé sur le serveur, c'est le serveur qui gère les modifications, à la limite, j'ai pas besoin d'avoir Excel sur le poste client.
Globalement, ça marche à peu près, le seul souci c'est que dans mon modèle j'ai des cellules dont la formule utilise une fonction pour faire un total et, si le total est supérieur à 10, afficher un MsgBox d'erreur.
Code:
=SI(SOMME(AM11:AM88)=0;"";Msg(SOMME(AM11:AM88)))
//C'est la fonction Msg qui est appelée et qui déclenche (ou pas) l'affichage du popup
Pour info, je peux vous donner le code de la fonction Msg (que de toute façon je n'ai pas le droit de modifier )
Code:
Function Msg(vMontant As Variant)
If (vMontant > 10) Then
Call MsgBox("Attention le total des imputations pour une journée ne doit pas dépasser 10 dixièmes", vbYes, "Saisie de l'activité")
End If
Msg = vMontant
End Function
L'appli Excel est lancée sur le serveur, donc le MsgBox (qui me paralyse le reste du process) est affiché... sur le serveur !!
Et comme mon pauvre utilisateur qui a cliqué dans sa page web n'est pas assis devant le serveur, il n'a aucun moyen de fermer cette boite de dialogue.
J'ai pas mal écumé les forums mais je n'ai rien trouvé qui puisse m'aider.
En fait il faudrait :
* soit que je puisse faire en sorte que la cellule de total ne fasse pas son appel à la fonction Msg() (on peut pas "freezer" une cellule ?)
* soit que je puisse valider automatiquement ce satané popup sans qu'il bloque mon process
J'ai essayé (sans succès):
* DisplayAlerts = false
* Interactive = false
J'ai aussi testé avec Calculation = -4135 pour bloquer la mise à jour des cellules de totaux, j'ai l'impression que ça fonctionne, jusqu'à ce que je déclenche la sauvegarde de mon fichier avec SaveAs(...) qui fait apparaitre mon cher popup 😕
Je précise que comme mon fichier Excel est un document officiel de la boite (et qu'il est censé le rester une fois que je l'ai rempli ^^) j'ai pas le droit de modifier le code des macros, fonctions, cellules, etc...
Si quelqu'un a la solution, je suis preneur 😀
Dernière édition: