Nous utilisons Excel 2003 en faisant appel dans les cellules à des fonctions
FUNCTION contenues dans des XLA chargés au démarrage ou incluses dans le
modèle.
Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours
disponible.
Hélas, lors du Save As, ou du premier Save d'un nouveau Worksheet, un
recalcul est effectué aux conditions bizarres suivantes qui nous gênent :
* Si un paramètre de notre fonction en XLA fait appel à une cellule par son
nom
* Si un paramètre de notre fonction en XLA fait appel à une cellule sur une
autre Sheet du même Worksheet
* Si la feuille (sheet) contient l'une de nos fonctions en XLA utilisée en
tant que paramètre d'une autre fonction.
Et un recalcul quand le serveur n'est pas disponible, cela donne des choses
bizarres.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur chacun des ordinateurs utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se passe si seulement certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les résultats doivent être en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la façon de mettre le contenu des cellules à jour sauf si le classeur est en mode de calcul manuel.
Salutations!
"Frédéric Decréquy" a écrit dans le message de news: O07wY29$ Bonjour,
Nous utilisons Excel 2003 en faisant appel dans les cellules à des fonctions FUNCTION contenues dans des XLA chargés au démarrage ou incluses dans le modèle.
Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Hélas, lors du Save As, ou du premier Save d'un nouveau Worksheet, un recalcul est effectué aux conditions bizarres suivantes qui nous gênent :
* Si un paramètre de notre fonction en XLA fait appel à une cellule par son nom
* Si un paramètre de notre fonction en XLA fait appel à une cellule sur une autre Sheet du même Worksheet
* Si la feuille (sheet) contient l'une de nos fonctions en XLA utilisée en tant que paramètre d'une autre fonction.
Et un recalcul quand le serveur n'est pas disponible, cela donne des choses bizarres.
Quelqu'un a-t-il déjà constaté ce problème ?
Quelqu'un a-t-il une solution directe ?
Merci d'avance.
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur chacun des ordinateurs
utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se passe si seulement
certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les résultats doivent être
en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la façon de mettre
le contenu des cellules à jour sauf si le classeur est en mode de calcul manuel.
Salutations!
"Frédéric Decréquy" <FredDecr@aol.comNG> a écrit dans le message de news: O07wY29$FHA.1288@TK2MSFTNGP09.phx.gbl...
Bonjour,
Nous utilisons Excel 2003 en faisant appel dans les cellules à des fonctions
FUNCTION contenues dans des XLA chargés au démarrage ou incluses dans le
modèle.
Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours
disponible.
Hélas, lors du Save As, ou du premier Save d'un nouveau Worksheet, un
recalcul est effectué aux conditions bizarres suivantes qui nous gênent :
* Si un paramètre de notre fonction en XLA fait appel à une cellule par son
nom
* Si un paramètre de notre fonction en XLA fait appel à une cellule sur une
autre Sheet du même Worksheet
* Si la feuille (sheet) contient l'une de nos fonctions en XLA utilisée en
tant que paramètre d'une autre fonction.
Et un recalcul quand le serveur n'est pas disponible, cela donne des choses
bizarres.
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur chacun des ordinateurs utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se passe si seulement certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les résultats doivent être en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la façon de mettre le contenu des cellules à jour sauf si le classeur est en mode de calcul manuel.
Salutations!
"Frédéric Decréquy" a écrit dans le message de news: O07wY29$ Bonjour,
Nous utilisons Excel 2003 en faisant appel dans les cellules à des fonctions FUNCTION contenues dans des XLA chargés au démarrage ou incluses dans le modèle.
Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Hélas, lors du Save As, ou du premier Save d'un nouveau Worksheet, un recalcul est effectué aux conditions bizarres suivantes qui nous gênent :
* Si un paramètre de notre fonction en XLA fait appel à une cellule par son nom
* Si un paramètre de notre fonction en XLA fait appel à une cellule sur une autre Sheet du même Worksheet
* Si la feuille (sheet) contient l'une de nos fonctions en XLA utilisée en tant que paramètre d'une autre fonction.
Et un recalcul quand le serveur n'est pas disponible, cela donne des choses bizarres.
Quelqu'un a-t-il déjà constaté ce problème ?
Quelqu'un a-t-il une solution directe ?
Merci d'avance.
Frédéric Decréquy
La DLL met du temps à charger ses données, ce qui fait que nous avons un bouton de chargement des données dans la barre d'outils, mais nous préférerions l'utiliser rarement pour certains Worksheets. La DLL reste sur le poste, oui.
Application.Volatile en début de fonction sert à ça mais nécessite un premier appel à chaque chargement.
Nous voudrions éviter les solutions suivantes : * Application serveur réseau qui met en cache les informations de la base de données, * modifier SaveAs pour faire une sauvegarde normale, un close, un Rename Visual Basic, et une réouverture ; * Faire des fonctions qui font appel à une feuille qui est une copie immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à jour met à jour aussi la copie immédiate.
"michdenis" a écrit dans le message de news: #xiMWQ$$
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur chacun des ordinateurs
utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se passe si seulement
certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les résultats doivent être
en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la façon de mettre
le contenu des cellules à jour sauf si le classeur est en mode de calcul manuel.
Salutations!
La DLL met du temps à charger ses données, ce qui fait que nous avons un
bouton de chargement des données dans la barre d'outils, mais nous
préférerions l'utiliser rarement pour certains Worksheets. La DLL reste sur
le poste, oui.
Application.Volatile en début de fonction sert à ça mais nécessite un
premier appel à chaque chargement.
Nous voudrions éviter les solutions suivantes :
* Application serveur réseau qui met en cache les informations de la base de
données,
* modifier SaveAs pour faire une sauvegarde normale, un close, un Rename
Visual Basic, et une réouverture ;
* Faire des fonctions qui font appel à une feuille qui est une copie
immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé
lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à
jour met à jour aussi la copie immédiate.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
#xiMWQ$$FHA.2736@TK2MSFTNGP11.phx.gbl...
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas
toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur
chacun des ordinateurs
utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se
passe si seulement
certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les
résultats doivent être
en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même
problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la
façon de mettre
le contenu des cellules à jour sauf si le classeur est en mode de calcul
manuel.
La DLL met du temps à charger ses données, ce qui fait que nous avons un bouton de chargement des données dans la barre d'outils, mais nous préférerions l'utiliser rarement pour certains Worksheets. La DLL reste sur le poste, oui.
Application.Volatile en début de fonction sert à ça mais nécessite un premier appel à chaque chargement.
Nous voudrions éviter les solutions suivantes : * Application serveur réseau qui met en cache les informations de la base de données, * modifier SaveAs pour faire une sauvegarde normale, un close, un Rename Visual Basic, et une réouverture ; * Faire des fonctions qui font appel à une feuille qui est une copie immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à jour met à jour aussi la copie immédiate.
"michdenis" a écrit dans le message de news: #xiMWQ$$
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur chacun des ordinateurs
utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se passe si seulement
certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les résultats doivent être
en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la façon de mettre
le contenu des cellules à jour sauf si le classeur est en mode de calcul manuel.
Salutations!
michdenis
*Application.Volatile en début de fonction sert à ça mais nécessite un premier appel à chaque chargement.
Sert à ça : C'est quoi ÇA ? Application.Volatile permet le recalcul d'une fonction à chaque recalcul d'une feuille. Excel a déjà environ 10 fonctions "natives" qui sont par définition Volatile : Alea(), Colonne(), Lignes() , Maintenant(), Colonnes(), Decaler() aujourdhui(), zones(), Index() indirect()
Application.Volatile est utile seulement si la fonction n'a pas de paramètres qui fait référence à des cellules de la feuille de calcul.
* modifier SaveAs ... Il faut enregistrer un fichier une première fois En renseignant le chemin et le nom que le fichier devrait avoir tu obtiens une ligne de code comme ceci : ThisWorkbook.SaveAs "c:ExcelMonFichier.xls" Je ne connais pas un autre moyen de procéder ...
* Faire des fonctions qui font appel à une feuille qui est une copie immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à jour met à jour aussi la copie immédiate.
Une fonction personnalisée doit être placée dans un module standard. Tous les fonctions de ces modules sont applicables à l'ensemble des feuilles d'un classeur.
La mise à jour (recalcul) peut être demandé pour une plage de cellules,` pour une feuille particulière ou pour le classeur entier. L'Aide sur la méthode "Calculate" est bien claire sur le sujet. Range("A1:G25").Calculate ou Feuil1.Calculate
P.S. Je termine ma participation à ce fil. Je ne saisis pas vraiment la finalité des questions !
Salutations!
"Frédéric Decréquy" a écrit dans le message de news: %23ZMvDd$$ La DLL met du temps à charger ses données, ce qui fait que nous avons un bouton de chargement des données dans la barre d'outils, mais nous préférerions l'utiliser rarement pour certains Worksheets. La DLL reste sur le poste, oui.
Application.Volatile en début de fonction sert à ça mais nécessite un premier appel à chaque chargement.
Nous voudrions éviter les solutions suivantes : * Application serveur réseau qui met en cache les informations de la base de données, * modifier SaveAs pour faire une sauvegarde normale, un close, un Rename Visual Basic, et une réouverture ; * Faire des fonctions qui font appel à une feuille qui est une copie immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à jour met à jour aussi la copie immédiate.
"michdenis" a écrit dans le message de news: #xiMWQ$$
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur chacun des ordinateurs
utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se passe si seulement
certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les résultats doivent être
en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la façon de mettre
le contenu des cellules à jour sauf si le classeur est en mode de calcul manuel.
Salutations!
*Application.Volatile en début de fonction sert à ça mais nécessite un
premier appel à chaque chargement.
Sert à ça : C'est quoi ÇA ?
Application.Volatile permet le recalcul d'une fonction à chaque
recalcul d'une feuille. Excel a déjà environ 10 fonctions "natives"
qui sont par définition Volatile :
Alea(), Colonne(), Lignes() , Maintenant(), Colonnes(), Decaler()
aujourdhui(), zones(), Index() indirect()
Application.Volatile est utile seulement si la fonction n'a pas
de paramètres qui fait référence à des cellules de la feuille
de calcul.
* modifier SaveAs ...
Il faut enregistrer un fichier une première fois
En renseignant le chemin et le nom que le fichier devrait avoir
tu obtiens une ligne de code comme ceci :
ThisWorkbook.SaveAs "c:ExcelMonFichier.xls"
Je ne connais pas un autre moyen de procéder ...
* Faire des fonctions qui font appel à une feuille qui est une copie
immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé
lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à
jour met à jour aussi la copie immédiate.
Une fonction personnalisée doit être placée dans un module standard.
Tous les fonctions de ces modules sont applicables à l'ensemble des
feuilles d'un classeur.
La mise à jour (recalcul) peut être demandé pour une plage de cellules,`
pour une feuille particulière ou pour le classeur entier. L'Aide sur la
méthode "Calculate" est bien claire sur le sujet.
Range("A1:G25").Calculate
ou
Feuil1.Calculate
P.S. Je termine ma participation à ce fil. Je ne saisis pas vraiment la finalité des questions !
Salutations!
"Frédéric Decréquy" <FredDecr@aol.comNG> a écrit dans le message de news: %23ZMvDd$$FHA.3992@TK2MSFTNGP15.phx.gbl...
La DLL met du temps à charger ses données, ce qui fait que nous avons un
bouton de chargement des données dans la barre d'outils, mais nous
préférerions l'utiliser rarement pour certains Worksheets. La DLL reste sur
le poste, oui.
Application.Volatile en début de fonction sert à ça mais nécessite un
premier appel à chaque chargement.
Nous voudrions éviter les solutions suivantes :
* Application serveur réseau qui met en cache les informations de la base de
données,
* modifier SaveAs pour faire une sauvegarde normale, un close, un Rename
Visual Basic, et une réouverture ;
* Faire des fonctions qui font appel à une feuille qui est une copie
immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé
lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à
jour met à jour aussi la copie immédiate.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
#xiMWQ$$FHA.2736@TK2MSFTNGP11.phx.gbl...
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas
toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur
chacun des ordinateurs
utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se
passe si seulement
certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les
résultats doivent être
en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même
problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la
façon de mettre
le contenu des cellules à jour sauf si le classeur est en mode de calcul
manuel.
*Application.Volatile en début de fonction sert à ça mais nécessite un premier appel à chaque chargement.
Sert à ça : C'est quoi ÇA ? Application.Volatile permet le recalcul d'une fonction à chaque recalcul d'une feuille. Excel a déjà environ 10 fonctions "natives" qui sont par définition Volatile : Alea(), Colonne(), Lignes() , Maintenant(), Colonnes(), Decaler() aujourdhui(), zones(), Index() indirect()
Application.Volatile est utile seulement si la fonction n'a pas de paramètres qui fait référence à des cellules de la feuille de calcul.
* modifier SaveAs ... Il faut enregistrer un fichier une première fois En renseignant le chemin et le nom que le fichier devrait avoir tu obtiens une ligne de code comme ceci : ThisWorkbook.SaveAs "c:ExcelMonFichier.xls" Je ne connais pas un autre moyen de procéder ...
* Faire des fonctions qui font appel à une feuille qui est une copie immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à jour met à jour aussi la copie immédiate.
Une fonction personnalisée doit être placée dans un module standard. Tous les fonctions de ces modules sont applicables à l'ensemble des feuilles d'un classeur.
La mise à jour (recalcul) peut être demandé pour une plage de cellules,` pour une feuille particulière ou pour le classeur entier. L'Aide sur la méthode "Calculate" est bien claire sur le sujet. Range("A1:G25").Calculate ou Feuil1.Calculate
P.S. Je termine ma participation à ce fil. Je ne saisis pas vraiment la finalité des questions !
Salutations!
"Frédéric Decréquy" a écrit dans le message de news: %23ZMvDd$$ La DLL met du temps à charger ses données, ce qui fait que nous avons un bouton de chargement des données dans la barre d'outils, mais nous préférerions l'utiliser rarement pour certains Worksheets. La DLL reste sur le poste, oui.
Application.Volatile en début de fonction sert à ça mais nécessite un premier appel à chaque chargement.
Nous voudrions éviter les solutions suivantes : * Application serveur réseau qui met en cache les informations de la base de données, * modifier SaveAs pour faire une sauvegarde normale, un close, un Rename Visual Basic, et une réouverture ; * Faire des fonctions qui font appel à une feuille qui est une copie immédiate des données lorsqu'un drapeau l'autorise. Le drapeau est activé lors de l'enregistrement, et est désactivé lors de la mise à jour. La mise à jour met à jour aussi la copie immédiate.
"michdenis" a écrit dans le message de news: #xiMWQ$$
Bonjour Frédéric,
| Ces fonctions font elles-mêmes appel à un serveur DLL qui n'est pas toujours disponible.
Cela signifie que la DLL dont relève la macro complémentaire n'est pas sur chacun des ordinateurs
utilisant cette macro complémentaire ?
Que ce soit à l'enregistrement ou à d'autres moments qu'est-ce qui se passe si seulement
certaines fonctions ne relevant pas de cette DLL sont recalculées ? Les résultats doivent être
en effet bizarre !
Et si la DLL est disponible directement sur l'ordinateur, as-tu le même problème ?
Ce que tu décris est plutôt le fonctionnement "normal" d'excel dans la façon de mettre
le contenu des cellules à jour sauf si le classeur est en mode de calcul manuel.
Salutations!
Frédéric Decréquy
Je te remercie, tu ne m'as pas aidé, mais la raison est que nous avons des besoins précis je pense.
Je voulais parler de formules et non de fonctions, et pour le Save As, nous avons ce code dans le Workbook_BeforeClose :
If Not Me.Saved Then
Select Case MsgBox("Do you want save your workbook ?", vbQuestion + vbYesNoCancel)
Case vbYes
Name = Application.GetSaveAsFilename(Me.Name, "Workbooks Files (*.xls), *.xls,Templates Files (*.xlt), *.xlt")
If Name = "" Or Name = "False" Then Cancel = True: Exit Sub
On Error Resume Next
Me.SaveAs Filename:=Name
On Error GoTo 0
If Not Me.Saved Then Cancel = True: Exit Sub
Case vbNo
Me.Saved = True
Case vbCancel
Cancel = True: Exit Sub
End Select
End If
Je te remercie, tu ne m'as pas aidé, mais la raison est que nous avons des
besoins précis je pense.
Je voulais parler de formules et non de fonctions, et pour le Save As, nous
avons ce code dans le Workbook_BeforeClose :
If Not Me.Saved Then
Select Case MsgBox("Do you want save your workbook ?", vbQuestion +
vbYesNoCancel)
Case vbYes
Name = Application.GetSaveAsFilename(Me.Name, "Workbooks Files
(*.xls), *.xls,Templates Files (*.xlt), *.xlt")
If Name = "" Or Name = "False" Then Cancel = True: Exit Sub