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 :

Extraire l'algorithme d'une macro


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
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2018
    Messages : 180
    Par défaut Extraire l'algorithme d'une macro
    Bonjour,

    Je dispose d'un fichier excel qui calcul automatiquement différents indices pratiques au cyclisme après avoir cliqué sur Ctrl + n. Les éléments à entrer sont en rouge (Puissance en watt, poids du cycliste + vélos, etc).

    Nom : 2021-07-17_113721.jpg
Affichages : 239
Taille : 148,5 Ko

    Une colonne (entourée en bleu) issue d'un calcul Macro me pose problème, car je n'arrive pas à déterminer comment elle est calculée. Voici le code VBA que j'ai pu extraire avec Alt + F12, dans "Module 2".

    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
     
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le xx/xx/xxxx par xx
    '
    ' Touche de raccourci du clavier: Ctrl+n
    '
        Range("J11").Select
        ActiveCell.FormulaR1C1 = "500"
        Range("J12").Select
        ActiveCell.FormulaR1C1 = "500"
        Range("J13").Select
        ActiveCell.FormulaR1C1 = "500"
     
        Range("K11").GoalSeek Goal:=0, ChangingCell:=Range("J11")
        Range("K12").GoalSeek Goal:=0, ChangingCell:=Range("J12")
        Range("K13").GoalSeek Goal:=0, ChangingCell:=Range("J13")
     
    End Sub
    Je ne vois aucun calcul ni équation. Existe-il une autre manière de voir comment une colonne est calculée ? Je met à disposition le fichier dans mon drive :

    https://drive.google.com/file/d/1o9I...ew?usp=sharing

    Un grand merci.
    Images attachées Images attachées   

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour,

    Si tu regardes les cellules K11 à K13, tu verras qu'elles comportent des formules qui font références aux cellules J11 à J13.

    Ta macro utilise la fonction du solveur pour définir la valeur des cellules K11 à K13, via l'instruction GoalSeek, en faisant varier les cellules J11 à J13.
    Comme ça passe par le solveur, tu ne vois donc aucun calcul, juste le résultats donné par le solveur.

    Tu obtiendras certainement plus de réponse en regardant le solveur.
    On peut voir que le but est de maximiser la valeur en colonne K en faisant varier la colonne J.

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2018
    Messages : 180
    Par défaut
    Merci pour cette piste ! Je ne connaissais pas le solveur sur Excel.

    En l'ouvrant et en sélectionnant une des cellules, celui-ci reste vide. Comment avoir plus d'infos sur le calcul ?

    Nom : 2021-07-19_092337.jpg
Affichages : 187
Taille : 415,0 Ko

    Merci !

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Le principe du solveur, c'est de faire varier une ou plusieurs cellules pour atteindre une certaine cible, en testant plein de combinaisons possibles.
    Je t'invite à lire l'aide Microsoft Excel pour avoir plus d'informations sur son utilisation.

    Dans ton cas, prennons par exemple l'instruction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("K11").GoalSeek Goal:=0, ChangingCell:=Range("J11")
    Cela signifie qu'on veut que la cellule K11 soit le plus proche de 0 (pour rappel c'est une formule qui dépend de J11 entre autre)
    Et pour y arriver, le solveur va faire varier la cellule J11 jusqu'à trouver la valeur optimale.

    Si on utilisait manuellement le solveur, cela reviendrait à le paramétrer comme ceci :
    Nom : Capture.JPG
Affichages : 175
Taille : 62,2 Ko

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2018
    Messages : 180
    Par défaut
    Un grand merci pour ces explications. Cela risque donc d'être dur de récupérer l'algorithme utilisé pour obtenir la valeur des cellules en K pour le reproduire indépendamment d'un fichier Excel ...
    Merci.

  6. #6
    Membre émérite
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Par défaut
    Bonjour,

    Il existe de nombreuses méthodes pour effectuer une optimisation (c'est-à-dire ce que fait le solveur : optimiser la valeur d'une grandeur en jouant sur la valeur d'une autre grandeur). Mais pour choisir la bonne, il nous faudrait plus d'infos.

    Pourriez-vous nous fournir les formules Excel utilisées en colonne K (cellule K11 par exemple) ?

Discussions similaires

  1. [XL-2016] Extraire les données GPS de photos avec une macro Excel
    Par Hugues411 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2016, 16h48
  2. Réponses: 7
    Dernier message: 25/01/2016, 22h15
  3. [WD-MAC 2004] Macro pour extraire le texte d'une zone de texte
    Par Untzki dans le forum VBA Word
    Réponses: 3
    Dernier message: 29/06/2011, 18h59
  4. Réponses: 1
    Dernier message: 03/01/2010, 12h49
  5. Réponses: 1
    Dernier message: 31/12/2009, 11h22

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