Solver en VBA Fonction SOLVEROK SOLVERADD et

  • Initiateur de la discussion Initiateur de la discussion eniotacom
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eniotacom

XLDnaute Nouveau
Bonjour,

j'ai un problème au moins grave.

du genre j'automatise des solvers parce que c'est pénible de faire à chaque fois outil / solver sélectionner toutes les cases...

donc je le fait en macro ce qui me donne le code suivant (qui ne semble pas très optimisé):


Code:
[I][COLOR="Blue"]Sub barre1()
Option Base 1
Option Explicit
'
Dim colonne As String

colonne = Left(ActiveCell.Address(False, False), (ActiveCell.Column < 27) + 2)

    SolverOptions MaxTime:=100, Iterations:=100, Precision:=0.000001, AssumeLinear _
        :=False, StepThru:=False, Estimates:=1, Derivatives:=1, SearchOption:=1, _
        IntTolerance:=10, Scaling:=False, Convergence:=0.0001, AssumeNonNeg:=True
        
    ' définir la cellule cible. Ici on minimise C15 qui est le poids de la chute
    SolverOk SetCell:="c$15", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$7:$C$11"
    
    ' définir les cellules variables. Ici c'est le nombre des différents produits que l'on
    ' fait varier. On défini que ce sont des valeurs entières
    SolverAdd cellref:="$C$7:$C$11", Relation:=4, FormulaText:="entier"
 
    
    
    'on défini que le poids de la chute de produit >= 0
    SolverAdd cellref:="$C$7:$C$11", Relation:=3, FormulaText:="0"

    
    'on défini que le poids total des produit ne peut être supérieur au poids de la barre.
    SolverAdd cellref:="$C$14", Relation:=1, FormulaText:="$C$3"
 
    
   ' on défini que le poids de la chute ne pe pas être inférieur à 0
    SolverAdd cellref:="$C$15", Relation:=3, FormulaText:="0"
 
    
    
    'dans la cellule nbre de ref la formule est la suivante =nb.si(C7:C1;"<>0")-1
    'ce qui signifie que : on compte le nombre de cases différentes de 0 et on enlève 1
    'le résultat est donc le nombre de références produites dans la barre
    'si on à 2 ref alors C13>=1 donc c'est bon
    SolverAdd cellref:="$C$13", Relation:=3, FormulaText:="1"
 
    
    'on résouds le solver
    SolverSolve
   
    
    
    '***********************************************************
    ' on efface toutes les contraintes du solver
    Solverdelete cellref:="$C$7:$C$11", Relation:=4, FormulaText:="entier"
    Solverdelete cellref:="$c$14", Relation:=1, FormulaText:="$c$3"
    Solverdelete cellref:="$c$13", Relation:=3, FormulaText:="1"
    Solverdelete cellref:="$C$15", Relation:=3, FormulaText:="0"
    Solverdelete cellref:="$C$7:$C$11", Relation:=3, FormulaText:="0"
    
    
End Sub[/COLOR][/I]
le problème est :

je dois recopier ce solver qui utilisera parfaitement les mêmes cases dans chaques colonnes sur un nom inconnu de colonnes.
je souhaite donc utiliser comme variable la lettre de la colonne mais impossible d'écrire quelque chose du style

celleref= colone&"$15"
cellref= cells(clonne,15)
cellref = range(cells(colone,15),(colonne,15))

et je n'ai pas envie de recopier bêtement la macro x fois en changeant tous les C en D, les D en E ...

Merci d'avance.
 

Pièces jointes

Dernière édition:
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

Merci
ça semble convenir mais il me dit bibliothèque inconnue

quand je suis dans l'éditeur macro et que je met outil référence il m'affiche manquant : solver.xla...

je cherche la solution je dois pas être le premier
 
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

Bonjour

J'ai eu ce message d'erreur avec ta pièce jointe eniotacom
Pas avec celle de pierrejean.
Mais entre temps , j'ai décoché Solveur dans Macros complémentaires
puis fermer Excel et réouvert Excel, puis recocher Solveur

et j'ai ouvert le fichier de pierrejean (qui a fonctionné sans broncher)

Je vais essayer de réouvrir ta pièce jointe.

EDITION
: toujours aucun message avec le fichier de pierrejean

Par contre toujours un message d'erreur avec ton fichier, eniotacom
 
Dernière édition:
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

Hé bien impossible d'exécuter la macro quoiqu'il arrive pour moi...

et également impossible de trouver le solver.xla.

En tout cas un grand merci pour le code.
espérons que je solutionnerai le problème en moins de 10 jrs 😛

En capture d'écran ce qu'il me met pour solver.xla.

mais à part ça j'ai l'impression que le code s'arrête sur le mot LEFT... qui sert à défini la colonne...


Edition :

j'ai crée le fichier sous 2003, et la je suis sous 2007 à essayer de l'exécuter... ça doit jouer
 

Pièces jointes

  • Sans titre.PNG
    Sans titre.PNG
    14.5 KB · Affichages: 197
  • Sans titre.PNG
    Sans titre.PNG
    14.5 KB · Affichages: 208
  • Sans titre.PNG
    Sans titre.PNG
    14.5 KB · Affichages: 215
Dernière édition:
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

Boinjour eniotacom, PierreJean, vbecrumble,

Regarde du côté Outils/Macros/Macros complémentaires et cocher Solveur.

Pour 2007, je ne connais pas les menus pour y parvenir.

Bonne fin d'après-midi.

Jean-Pierre
 
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

Bonsoir jeanpierre


Tu n'as pas de message d'erreur avec le fichier de eniotacom ? 😕

(Si tu l'ouvres sans rien toucher à ta configuration d'Excel)


PS: Par défaut, j'ai toujours l'utilitaire d'analyse et le solveur cochés
 
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

bonsoir a tous

J'ai bien le solveur en macros complementaires (depuis peu d'ailleurs)
Il m'a fallu le CD d'Office pour l'installer
par contre rien de semblable dans les References Vba

Ps : j'ai egalement l'utitaire d'analyse et je suis en EXCEL 9.0 Office 2000
 
Dernière édition:
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

Bonsoir pierrejean


Voila ce que j'ai en ouvrant ton fichier
(que je n'ai pas avec le fichier de eniotacom)

vbef.jpg


Et par défaut SOLVER.xla est coché quand j'ouvre Excel ??
Que je décoche puis récoche, toujours un message d'erreur avec son fichier.
 
Dernière édition:
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

je ne l'ai pas créer sur le même ordinateur.

et impossible de trouver solver.xla sur le cd d'office. j'ai pourtant tout installer en exécuter tout depuis le disque dur...

bref...

ou alors j'ai une version trop petite de office 2007 j'ia pas une version entreprise..
 
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

Re tous,

Souvent j'ai des messages d'erreur, voire même l'impossiblité d'aller plus loin, mais là : "Tu n'as pas de message d'erreur avec le fichier de eniotacom ? 😕", non.... (alors que souvent je ne peux utiliser les macros qui font appel qu solveur, donc je ne comprends pas)

Regarder aussi si "Utilitaire d'analyse - VBA" est coché, valable sur un autre fil avec la fonction "fin de semaine" si je me souviens bien... ou un truc sur weel-end....

Pas sûr que cela vienne de là, mais bon...

Bonne soirée.

Jean-Pierre
 
Re : Solver en VBA Fonction SOLVEROK SOLVERADD et

J4ai trouver la solution


en fait j'avais bien le solver.xla mais das un dossier s'appelant

Office12/library/solver

et pour le voir il fallait que je fasse afficher tous les types de fichiers...


Bref 2h de lutte mais j'ai la solution.
Et en plus ça marche Parfaitement.

Merci beaucoup à tous pour votre aide.
je reviendrais.

cela dit je vais peut être en aider beacoup avec mon histoire.

tchuss
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
159
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
171
Réponses
4
Affichages
461
Retour