IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour lancer le solveur [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 179
    Par défaut Macro pour lancer le solveur
    Bonjour le Forum,

    je viens solliciter votre aide pour modifier le ou les codes qui me permettront de lancer le Solveur.
    Les codes que j'utilise actuellement sont les suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If [D10] = 1 Then
    Bouton1_Cliquer
    End If
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Bouton1_Cliquer()
        Macro7
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro7()
    '
    ' Macro7 Macro
    '
     
    '
        'Range("D8").Select
        SolverOk SetCell:=[D8], MaxMinVal:=3, ValueOf:=[D12].Value, ByChange:="$D$5:$D$7"
    SolverSolve
     
    End Sub
    Le Solveur est lancé lorsque la valeur de la Cellule [D10] est égale à 1.
    Malheureusement, s'affiche alors dans la fenêtre du Solveur le message suivant :
    Une autre instance d'Excel utilise SOLVER.DLL. Essayez à nouveau plus tard.
    Je n'en comprends pas la raison.

    Si je lance le Solveur en cliquant sur le bouton 1 "Nouvelle marge", le Solveur fonctionne normalement.

    Pouvez-vous me dire ce qui ne va pas dans mes codes pour que le Solveur soit lancé lorsque la valeur de la cellule (D10] est égale à 1 ?

    Afin de vous permettre de mieux comprendre mon problème, je vous joins le fichier concerné.

    Avec mes remerciements et en vous souhaitant une bonne fin de journée.
    Cordialement.

    Nonno 94.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu boucles sur ta procédure à chaque fois qu'une valeur change.

    Utiliser ce code devrait résoudre ton problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
     
    Private Sub CommandButton1_Click()
        Macro7
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If [D10] = 1 Then Macro7
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Explicit
     
    Public Sub Macro7()
      Application.EnableEvents = False
        SolverOk SetCell:=[D8], MaxMinVal:=3, ValueOf:=[D12].Value, ByChange:="$D$5:$D$7"
        SolverSolve
      Application.EnableEvents = True
    End Sub
    Mais la condition pour rentrer dans l'évènement 'Worksheet_SelectionChange' n'est pas assez stricte.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 179
    Par défaut
    Bonjour vcottineau et une nouvelle fois tous mes remerciements pour votre réponse pertinente.

    Mais la condition pour rentrer dans l'évènement 'Worksheet_SelectionChange' n'est pas assez stricte.
    Que suggérez-vous ?
    En ce qui me concerne, vos Codes me satisfont pleinement.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je trouve plus logique d'utiliser l'événement 'Worksheet_Change' comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = [D10].Address And [D10] = 1 Then Macro7
    End Sub
    Mais peut être que ton besoin est différent.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 179
    Par défaut
    Je vais conserver la 1 ère version car elle répond parfaitement à ma demande.
    Merci encore pour votre patience et bonne fin de journée.

    Nonno 94.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-97] Macro pour lancer un publipostage word directement depuis exel
    Par jl_danse dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/05/2010, 11h13
  2. [XL-2007] Macro pour lancer un graphique
    Par steak_frite dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/01/2010, 19h31
  3. Macro pour lancer l'impression
    Par Dailyplanet dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 05/10/2009, 11h59
  4. [VBA]Macro pour lancer une recherche dans un tableau
    Par manhes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2007, 19h08
  5. macro pour lancer une requête
    Par Kleer dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/02/2007, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo