Figer Outil/Option/Calcul/Iterations et Ecart Maxi

a3lain

XLDnaute Junior
Bonjour,

Je voudrais savoir si il y a moyen de figer/lier à une feuille de calcul le parametre Outil/Option/Calcul/Iterations et Ecart Maximal.

En effet, si je parametre ceci dans une feuille - je la sauvegarde puis je la ferme,
ensuite j'ouvre une autre feuille qui a des paramètres differents , puis que je laisse ouvert cette derniere feuille.
J'ouvre à nouveau ma premiere feuille, les parametres ont été effacés...


Merci
 

Gael

XLDnaute Barbatruc
Bonsoir Alain,

Ces options sont générales et ne s'appliquent pas à une feuille de calcul en particulier, donc ne sont pas sauvegardées avec la feuille de calcul.

Tu peux par contre faire les modification en auto enregistrement afin de créer une macro que tu exécute automatiquement à l'ouverture de la feuille de calcul.

On peut lancer cette macro avec une commande Auto Open à mettre dans ThisWorkbook.

J'ai fait un essai qui donne par exemple:

Private Sub Workbook_Open()

With Application
.Iteration = True
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
End With

End Sub

Comme je ne suis pas opérationnel en VBA, j'espère qu'un collègue corrigera mes anneries au cas où.

Dis-moi si ça marche.

@+

Gael
 

a3lain

XLDnaute Junior
Gael écrit:
Bonsoir Alain,

Ces options sont générales et ne s'appliquent pas à une feuille de calcul en particulier, donc ne sont pas sauvegardées avec la feuille de calcul.

Tu peux par contre faire les modification en auto enregistrement afin de créer une macro que tu exécute automatiquement à l'ouverture de la feuille de calcul.

On peut lancer cette macro avec une commande Auto Open à mettre dans ThisWorkbook.

J'ai fait un essai qui donne par exemple:

Private Sub Workbook_Open()

With Application
.Iteration = True
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
End With

End Sub

Comme je ne suis pas opérationnel en VBA, j'espère qu'un collègue corrigera mes anneries au cas où.

Dis-moi si ça marche.

@+

Gael

Pas bête comme idée. Je vais essayer. Comment puis je avoir le nb d'iterations mis à 7 et l'ecart maxi à 0.
A quoi sert ici :
ActiveWorkbook.PrecisionAsDisplayed = False

Merci
 

Gael

XLDnaute Barbatruc
Bonsoir Alain,

En fait tu crées simplement une nouvelle macro (Outils macros nouvelle macro)

Puis tu règles les paramètres comme tu le souhaites
Outils macros arrêter l'enregistrement

Tu récupères le code dans l'éditeur VB.

Pour le paramètre 'Precision...=false', c'est simplement parce que l'autoenregistrement a repris cette option qui est dans le même onglet que l'itération. Tu peux supprimer la ligne.

@+

Gael
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir a3lain, Gael,

Je suis loin d'être un grand spécialiste en la matière, mais ActiveWorkbook.PrecisionAsDisplayed = False correspond à l'option Outil/Option/Calcul/Calcul avec la précision au format affiché qui doit vraissemblablement forcer les valeurs de cellule à la même précision que le format nombre de la dite cellule.

Effectivement, comme le dit Gael, l'option d'Itération semble être liée non pas à un classeur, mais à l'environnement de l'application Excel elle-même...

Aussi, s'il convient de modifier ces paramètres pour un classeur donné, il est peut-être bon de rétablir les options d'origines à la désactivation du dit-classeur. Pour ce faire, en me basant sur le code indiqué par Gael, je te proposerais de coller ce qui suit dans le module de code de l'objet ThisWorkbook :
Option Explicit
'Variables en tête de module permettant le passage des valeurs entre procédures
Dim It As Boolean, MIt As Integer, Mch As Double

Private Sub Workbook_Activate()
'Mémoriser les options avant
      With Application
            It = .Iteration
            MIt = .MaxIterations
            Mch = .MaxChange
            'Modifier les options
            .Iteration = True
            .MaxIterations = 7
            .MaxChange = 0
      End With
End Sub


Private Sub Workbook_Deactivate()
'Rétablir les options après
      With Application
            .Iteration = It
            .MaxIterations = MIt
            .MaxChange = Mch
      End With
End Sub
Cordialement,
 

a3lain

XLDnaute Junior
Encore une excellent idée. Merci à tous. Je prends.
Encore un petit effort pour savoir comment ne pas afficher le message qui dit qu'il y a un problème de reference circulaire à l'ouverture.
J'ai tenté d'ajouter Application.DisplayAlerts = False
dans cette macro d'ouverture du Workbook puis de le remettre à True en sortie de la macro
mais cela n'a pas fonctionné
le message d'alerte est apparu à l'ouverture d'excel

des idées...

Merci
 

Gael

XLDnaute Barbatruc
Bonsoir Didier, re, Alain,

Merci Didier, je n'y avais pas pensé. Heureusement que j'avais écris qu'un collègue viendrait corriger mes anneries.

Si les options ne sont pas rétablies, elles restent valables pour tous les classeurs suivants...

Par contre pour les références circulaires, c'est un autre problème.

Il faudrait envoyer un exemple.

Encore merci Didier et bonne nuit à vous deux.

@+

Gael
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 400
Messages
2 088 087
Membres
103 711
dernier inscrit
mindo