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 :

Optimisation d'une cellule - VBA et Solver


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    vagabond
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : vagabond

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 10
    Points
    10
    Par défaut Optimisation d'une cellule - VBA et Solver
    Bonjour,

    Je viens à vous aujourd'hui pour vous poser deux questions en une.

    Je vais commencer par vous décrire ce que je veux faire. J'ai deux séries temporelles de chiffres (colonnes A et B). La colonne A est en dur. La colonne B est calculée ainsi: colonne A fois un coefficient C1 qui est dans une cellule à part, ce coefficient est le même pour chaque ligne dans la formule de la colonne B. Dans une autre cellule, je mets la somme des carrés des différences SCD entre ma colonne A et ma colonne B.
    Vous l'avez deviné, je cherche le coefficient C1 qui minimise la SCD!

    Option 1: le solveur. Je paramètre le solveur en lui demandant de minimiser la cellule qui contient le SCD en faisant varier celle qui contient le coefficient, avec comme contrainte 0<=C1<=1, il me dit qu'il y a une erreur dans la cellule cible...

    Option 2: dans VBA, faire varier le coefficient dans une boucle et récupérer le contenu de la cellule du SCD à chaque itération. Problème: je n'ai aucune idée de si Excel attend que la cellule soit calculée pour continuer le code...

    Je me pose donc des questions pour les deux méthodes. Si vous avez une réponse à mes questions, ou que vous voyez une autre méthode, ce sera une joie de vous lire.

    Bonne fin de journée,

    Clément

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    Par défaut
    Salut,

    un peu de lecture =]
    http://jpcheck.developpez.com/tutori...ur-sous-excel/

    Ta cellule cible est-elle bien une formule ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Homme Profil pro
    vagabond
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : vagabond

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Merci pour la lecture, je vais y jeter un œil, même si je suis très habitué à utiliser le solveur (pour optimiser des choses bien plus compliquées d'ailleurs, c'est pourquoi je suis étonné d'avoir un problème sur une chose aussi simple...).

    Bien sûr, j'optimise une cellule contenant une formule. Cette formule est somme.carres(colonne A - colonne B). J'ai même essayé d'ajouter des colonnes de calcul intermédiaire, différences, puis différences au carré, avec dans ce cas une formule cible qui est simplement la somme de la colonne qui contient les différences au carré, mais rien n'y fait.

    Clément

    Pour compléter ma réponse précédente:

    Quand je fais varier mon coefficient manuellement, entre 0 et 1, la cellule cible évolue aussi. J'arrive même à déterminer mon coefficient optimal en tâtonnant. La cellule cible fait grosso-modo un U quand le coefficient varie.

  4. #4
    Membre à l'essai
    Homme Profil pro
    vagabond
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : vagabond

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Si ça peut aider quelqu'un par la suite, j'ai trouvé la cause de mon problème de solver. C'est simplement que la cellule variable est une cellule fusionnée! J'ignorais que ça pouvait poser un problème... Si c'est la cellule objectif qui est fusionnée, le solveur fait la remarque et refuse de s'exécuter, mais si c'est la cellule variable, il dit juste qu'il y a une erreur.

    Merci tout de même au forum

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 269
    Points
    34 269
    Par défaut
    C'est un element dont je me souviendrai !

    Si c'est bon pour toi, bouton
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

Discussions similaires

  1. Insérer formule dans une cellule VBA
    Par maxoumax dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/03/2016, 15h03
  2. Insérer du texte dans une cellule vba
    Par jucva dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2015, 14h30
  3. Insérer du texte dans une cellule vba
    Par jucva dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/09/2015, 14h01
  4. Optimisation d'une application VBA Access
    Par mario_lam dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/02/2015, 10h03
  5. recuperer la couleur d'une cellule VBA
    Par fernier dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/07/2008, 11h46

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