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 :

Portabilité Solveur VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Portabilité Solveur VBA
    Bonjour,

    J'ai créé un programme VBA qui utilise les fonctionnalités du Solveur.
    Malheureusement, si j'envoi ma macro à un autre utilisateur et qu'il utilise une autre version d'Excel, la macro ne fonctionne pas.
    Comment rendre portable cette macro ?

    Vous en remerciant par avance.

    Cordialement.

  2. #2
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Par défaut
    Bonjour

    Peux tu décrire ce qui ne va pas quand tu changes de version d'Excel? Message d'erreur, résultat erroné, ... ?

    Sans précision il est difficile de t'aider.

    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Cela indique dans les références "Manquant:Solveur".
    La solution que j'ai trouvé est d''installer le complément Solveur sur chacun des postes qui utiliseront cette macro.
    C'est contraignant car on doit faire cette manip pour chacun d'eux.


    sinon, j'ai un autre soucis sur mon code, je souhaiterais renseigner manuellement une contrainte via un MsgBox, mais mes variables ainsi définies n'e sont pas prises en compte dans ma contrainte.
    En effet je souhaiterais pouvoir modifier à ma guise les variables pourcentageMin et pourcetageMax.

    Ci-dessous mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub lissagePourcentageDiametre()
    ' lissagePourcentage Macro
    ' Lisse les pourcentages du débit total par tronçons
     
    Dim pourcentageMin As Double
    Dim pourcentageMax As Double
     
    'Réinitialisation du solveur
    SolverReset
     
    'Valeur par défaut du débit total
    pourcentageMin = 0.19
    pourcentageMax = 0.21
     
     
    'Contrainte sur Cellule S15, toujours égale à 100%
    'Définition des variables sur lesquelles les ajustement se feront
     
    SolverOk SetCell:="$S$15", MaxMinVal:=3, ValueOf:=1, ByChange:="$E$15,$H$15,$K$15,$N$15,$Q$15,$E$19,$H$19,$K$19,$N$19,$Q$19", Engine:=1, EngineDesc:="GRG Nonlinear"
     
    'Contraintes sur Tronçon 1
    SolverAdd CellRef:="$E$15", Relation:=3, FormulaText:="pourcentageMin"
    SolverAdd CellRef:="$E$15", Relation:=1, FormulaText:="pourcentageMax"
     
    'Contraintes sur les " DP chemin " qui doivent être identiques
    SolverAdd CellRef:="$Q$42", Relation:=2, FormulaText:="$C$46"
     
     
    SolverOptions AssumeNonNeg:=True
     
    SolverSolve UserFinish:=True
     
     
     
    End Sub

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Si tu veux renseigner quelque chose, ce n'est pas par MsgBox, mais par InputBox. Attention, l'InputBox renvoie une chaine de caractère. Il faut donc éventuellement faire des conversions.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim valMin As Long
    valMin = CLng(InputBox("Quelle est la valeur minimale ?","Valeur minimale","0.19"))

Discussions similaires

  1. [XL-2013] Création d'un programme linéaire dans solveur VBA
    Par picture dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2016, 12h33
  2. Contraintes solveur VBA
    Par swiMa dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/05/2014, 17h10
  3. Solveur VBA Excel
    Par felipe19 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/07/2013, 12h09
  4. boucle solveur vba
    Par student90 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/04/2013, 17h54
  5. vba solveur excel
    Par moimemessssssssss dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/10/2006, 14h27

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