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 :

Boucle sur un solver


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut Boucle sur un solver
    Bonjour, je suis nouveau sur ce forum et j'espére que vous comprendrez mon language de profane et d'ignare à propos de VBA.

    J'ai une équation de la forme ax^4+bx+c=0 (où a,b et c sont propres à une cellule).

    J'ai prés de 700 valeurs à calculer à la main car le solveur d'excel semble ne pas pouvoir être "glissé" sur une colonne.

    J'ai donc écrit une macro (bon j'avoue c'est un collégue qui l'a faite) qui donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub solve()
     
    ' solve Macro
     
        SolverOk SetCell:="C19", MaxMinVal:=3, ValueOf:="0", ByChange:="D19"
        SolverSolve Userfinish:=True
    End Sub
    Bon ça , ça marche,

    Mais moi je voudrais ajouter une boucle, comme un " For K = 19 to 360"
    avec "k" à la place de "19", mais évidemment, c'était trop simple, ça ne fonctionne pas!

    Donc si quelqu'un pouvait chevaleresquement me venir en aide pour que ma macro fonctionne sur ces plages de données :

    C19: C360 = les cellules comportant la formule
    D19: D360 = les cellules qui prendront les valeurs de x.

    MERCI D'AVANCE si quelqu'un y arrive...

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 008
    Par défaut
    Salut et bienvenu

    Peut être comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub solve()
    Dim K As Integer
    ' solve Macro
    For K = 19 To 360
        SolverOk SetCell:="C" & K, MaxMinVal:=3, ValueOf:="0", ByChange:="D" & K
        SolverSolve Userfinish:=True
    Next
    End Sub
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,

    je ne connais rien en solver mais en regardant ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SolverOk SetCell:="C19", MaxMinVal:=3, ValueOf:="0", ByChange:="D19"
    j'ai l'impression d'avoir affaire à des string, si c'est le cas (ça m'étonnerais)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SolverOk SetCell:="C19", MaxMinVal:=3, ValueOf:="0", ByChange:="D" & k
    on s'est croisé Qwaz
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Salut et bienvenu

    Peut être comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub solve()
    Dim K As Integer
    ' solve Macro
    For K = 19 To 360
        SolverOk SetCell:="C" & K, MaxMinVal:=3, ValueOf:="0", ByChange:="D" & K
        SolverSolve Userfinish:=True
    Next
    End Sub
    A++
    Qwaz
    Je saute de joie un peu partout^^ Bref c'est parfait ça fonctionne :d merci à vous deux...

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. Macro sur Excel/Boucle sur les lettres
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/11/2005, 11h56
  3. [JDBC]Boucle sur tous les éléments du ResultSet
    Par Terminator dans le forum JDBC
    Réponses: 1
    Dernier message: 22/09/2005, 19h30
  4. L'installation d'XP boucle sur elle-même
    Par pf106 dans le forum Windows XP
    Réponses: 13
    Dernier message: 20/08/2005, 14h55
  5. [MFC] Boucle sur un bouton
    Par karl3i dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 11h37

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