Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Douie

XLDnaute Nouveau
Bonjour à tous!

J'ai un petit problème: j'utilise une macro pour lancer automatiquement le solveur. Le soucis est que, quand j'utilise cette macro, dans options de calcul, le mode "manuel" se remet alors que j'étais en automatique. Du coup, aucune des cellules utilisant la valeur calculée par le solveur ne se met à jour.

Avez vous une idée pour remédiez à ce problème et rester en automatique ?

Merci à tous
 

Victor21

XLDnaute Barbatruc
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Bonjour, Douie, et bienvenue sur XLD

Malgré les compétences colossales, et à mon avis inégalées de la communauté XLDienne, il me semble, en toute modestie, qu'au moins le texte de la macro, à défaut d'un fichier s'avérera nécessaire pour vous aider utilement.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Bonjour Douie, Salut Victor

Y- a-t'il ceci dans le code ?
Application.Calculation = xlCalculationManual

si oui, remplacer par ceci ou alors mettre à la fin du code:
Application.Calculation = xlAutomatic

à+

Philippe
 

JCGL

XLDnaute Barbatruc
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Bonjour à tous,
Salut Patrick,

Tu as, peut-être, en début de code :
Code:
Application.Calculation = xlCalculationManual

Il faudrait, je pense, mettre en fin de code :
Code:
Application.Calculation = xlCalculationAutomatic

A ++
A + à tous

Edition : Oups... Salut Philippe.
 

Douie

XLDnaute Nouveau
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Bonjour à vous deux!

Voici la macro:
Code:
Sub Solveur_critere2()
'
' Solveur_critere2 Macro
'

'
    ActiveWindow.SmallScroll Down:=-9
    SolverOk SetCell:="$L$44", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$44", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$L$44", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$44", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverSolve (True)
    SolverOk SetCell:="$L$52", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$52", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$L$52", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$52", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverSolve (True)
    SolverOk SetCell:="$L$54", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$54", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$L$54", MaxMinVal:=3, ValueOf:=0, ByChange:="$J$54", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverSolve (True)
End Sub

Donc non rien de ce que tu m'as dit phlaurent55 !
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Re,

la ligne n'est peut-être pas dans cette "Sub", tu ne nous montres qu'une partie du code

quoi qu'il en soit, il faut quand même mettre ceci: (de préférence au bon endroit)
faute de voir le problème dans sa totalité, en ce moment ma boule de cristal ............ :confused: :confused: :confused:

Application.Calculation = xlCalculationAutomatic


à+
Philippe
 

Douie

XLDnaute Nouveau
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

En réalité, le solveur ne fonctionne pas, le bouton permettant de déclencher la macro se trouve dans une feuille nommée 'programme' et les cellules à modifier se trouvent dans 'Sousleprogramme'. Le code à quel que peu changé:

Code:
Sub Solveur_critere2()
'
' Solveur_critere2 Macro
'

'
Application.Calculation = xlCalculationAutomatic

    ActiveWindow.SmallScroll Down:=-9
    SolverOk SetCell:="Sousleprogramme!$L$44", MaxMinVal:=3, ValueOf:=0, ByChange:="Sousleprogramme!$J$44", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="Sousleprogramme!$L$44", MaxMinVal:=3, ValueOf:=0, ByChange:="Sousleprogramme!$J$44", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverSolve (True)
    SolverOk SetCell:="Sousleprogramme!$L$52", MaxMinVal:=3, ValueOf:=0, ByChange:="Sousleprogramme!$J$52", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="Sousleprogramme!$L$52", MaxMinVal:=3, ValueOf:=0, ByChange:="Sousleprogramme!$J$52", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverSolve (True)
    SolverOk SetCell:="Sousleprogramme!$L$54", MaxMinVal:=3, ValueOf:=0, ByChange:="Sousleprogramme!$J$54", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="Sousleprogramme!$L$54", MaxMinVal:=3, ValueOf:=0, ByChange:="Sousleprogramme!$J$54", Engine _
        :=1, EngineDesc:="GRG Nonlinear"
    SolverSolve (True)
End Sub

Alors je ne sais pas si c'est parce que le mode passe en manuel (toujours après la modification) ou parce que ce n'est pas sur la même feuille mais mes cellules solvées ne changent pas !
 

JCGL

XLDnaute Barbatruc
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Bonjour à tous,

Bonjour à toi aussi...

Dépose ton fichier pour une aide optimisée...
Toutes les procédures seront dans le fichier déposé et permettront une tentative d'aide...

A + à tous
 

Douie

XLDnaute Nouveau
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Je ne sais pas si vous y comprendrez grand chose mais voici le fichier.

Les feuilles qui m'intéressent sont 'programme' où je cherche à lancer le solveur agissant dans 'Sousleprogramme'.

Je crois que mon problème est donc de lancer le solveur à partir d'une autre feuille (et mon seul code sont les macros solveur)

Merci encore
 

Pièces jointes

  • tdlong EXtraction LL.xls
    190 KB · Affichages: 53

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Re, Bonjour Jean-Claude
Je crois que mon problème est donc de lancer le solveur à partir d'une autre feuille (et mon seul code sont les macros solveur)
je ne pense pas que ça pose problème car dans le code il est fait références aux cellules de la feuille "Sous le programme"

fais encore un essai en mettant cette ligne à la fin de la procédure et pas au début (juste avant 'End Sub' )

Application.Calculation = xlCalculationAutomatic

à+
Philippe
 
Dernière édition:

Douie

XLDnaute Nouveau
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Bonjour!

J'ai résolu mon problème en ajoutant en début de code:

Code:
Sheets("Sousleprogramme").Select

Et en fin:

Code:
Sheets("Programme").Select

Pour retourner sur la feuille programme.

Du coup j'aurais une autre question, je ne sais pas si je dois rouvir un sujet.

Comment puis-je créer un bouton, situé dans le feuille 'Programme' qui demande à l'utilisateur de taper 1 ou 2. S'il tape 1, alors ma cellule située sous le bouton prendra la valeur de la cellule D96 située dans la feuille 'Sousleprogramme', si il tape 2 alors ma cellule prendra la valeur de la cellule F96 située dans la feuille 'Sousleprogramme' ?

Merci!
 

Dull

XLDnaute Barbatruc
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

Salut Douie, Philippe:), Mon JC:cool:, Patrick:), le Forum:):):)

Pas sur d'avoir tout compris mais tu peux mettre ce code à la commande du Bouton

Code:
Option Explicit

Private Sub CommandButton1_Click()
Dim Val As String, F3 As Worksheet
Set F3 = Sheets("Sousleprogramme")
Val = InputBox("Veuillez saisir le Chiffre 1 ou 2", "Choix")
Select Case Val
    Case 1: [F6] = F3.[D96]
    Case 2: [F6] = F3.[F96]
    Case Else: [F6] = "": MsgBox "Hors valeur demandée"
End Select
End Sub

Bonne Journée
 

Pièces jointes

  • Douie.xlsm
    21.1 KB · Affichages: 45

Douie

XLDnaute Nouveau
Re : Lors de l'utilisation d'une macro, option de calcul se remet en manuel

merci à toi ! Je n'ai pas mon ordi sous la main mais j'essaie ca dês ce soir ! Savez vous si la macro que j'ai utilisé (avec solverok) marche aussi sur excel 2003 et 2007 ?
 

Discussions similaires

Statistiques des forums

Discussions
312 369
Messages
2 087 673
Membres
103 634
dernier inscrit
mariobroz