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 :

[VBA-Excel] Calcul d'une formule avec une inconnue


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [VBA-Excel] Calcul d'une formule avec une inconnue
    Salut,
    Je suis comment dire, néo-débutant, complètement ignare des codes, il m'en faut pourtant un, voilà donc pourquoi je m'adresse à la communauté. (Il me semble d'ailleur que le code ne doit pas etre réellement compliqué)

    Voici mon problème:
    J'ai deux volumes (V1 et V2) connus et renseignés dans des cellules Excel (B1 et b3 par exemple) et je souhaite réaliser cette opération:
    Si 5*V1+(n+1)*RACINE(100/6)<V2 avec n=2 alors on note dans le cellule B5 le nombre n
    sinon on réalise la meme opération avec n=3 , puis avec n=4,... ainsi de suite jusqu'à ce que l'opération soit vérifiée.

    en fait je souhaite atteindre une dilution /100 du volume V1 avec une première dilution par 6, en utilisant de façon optimale un volume d'eau V2.

    Merci d'avance

  2. #2
    RLX
    RLX est déconnecté
    Membre du Club Avatar de RLX
    Inscrit en
    Octobre 2004
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 51
    Points : 61
    Points
    61
    Par défaut
    Salut micwiss,

    voici une solution avec les formules si ça t'intéresse
    valeur de V1 en C4
    valeur de V2 en C5
    valeur de n en C6
    formule en E6
    =5*$C$4+(C6+1)*SQRT(100/6)
    2 eme formule en F6
    =IF(E6<$C$5,"INFERIEUR","SUPERIEUR")

    voila et avec la souris tu sélectionne la cellule de n (C6) tu click sur le petit carré en bas à droite de la cellule et en appuyant sur CTRL tu descend la souris et quand tu lache le bouton il te rempli toute les cellules avec les différentes valeur de n. Tu fais la meme chose avec les 2 formules et tu as les résultats!!!!!
    Pour résoudre un problème le plus dur n'est pas de trouver la solution, c'est de trouver celui qui la connait !!!!

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Voici mon problème:
    J'ai deux volumes (V1 et V2) connus et renseignés dans des cellules Excel (B1 et b3 par exemple) et je souhaite réaliser cette opération:
    Si 5*V1+(n+1)*RACINE(100/6)<V2 avec n=2 alors on note dans le cellule B5 le nombre n
    sinon on réalise la meme opération avec n=3 , puis avec n=4,... ainsi de suite jusqu'à ce que l'opération soit vérifiée.
    Tu peux aussi faire une macro :

    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
     
    Sub macro1 ()
    Dim v1 As Double
    Dim v2 As Double
    Dim resultat As Double
    n = 1
    'initialisation des variables a la valeur des volumes de tes cellules B1 et B3
    v1 = Range("B1").Value
    v2 = Range("B3").Value
    'on met ton calcul dans une variable
    resultat = 5 * v1 + (n + 1) * Sqr(100 / 6)
    While resultat > v2
        'tant que le resultat est superieur au volume v2 on rajoute 1 à n
        n = n + 1
        resultat = 5 * v1 + (n + 1) * Sqr(100 / 6)
        'on réinitialise le calcul
    Wend
    Range("B5").Value = n  'en B5 on aura la valeur de n
    End Sub
    Alors après pour la boucle, je sais pas si c'est supérieur ou inférieur j'ai un affreux doute
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci beaucoup!
    ca marche avec les deux méthodes.
    Pour la méthode avec la macro je vais fouiller dans le forum pour créer un bouton pour faire la tourner.

    Pour info ma formule était mauvaise
    Pour connaitre le volume nécessaire pour obtenir une dilution par 100 avec une première dilution par 6, l'équation est la suivante
    =5*volume1+(100/6)^(1/(n-1))*volume1*(n-1) avec n nombre de dilution

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Oui après c'est a toi de la mettre en forme, je t'ai juste donné l'idée
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    etant donné qu'avec certains volumes v1 et v2 la boucle était infinie, j'ai utilisé le "Do While ... Loop" avec un "If n > 10 Then Exit Do", pour finir la boucle s'il fallait plus de 10 rinçages successifs


    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
    Sub rinçage()
    Dim v1 As Double
    Dim v2 As Double
    Dim resultat As Double
    n = 2
    'initialisation des variables a la valeur des volumes de tes cellules B3 et B5
    v1 = Range("B3").Value
    v2 = Range("B5").Value
    'on met ton calcul dans une variable
    resultat = 5 * v1 + (100 / 6) ^ (1 / (n - 1)) * v1 * (n - 1)
    Do While resultat > v2
        'tant que le resultat est superieur au volume v2 on rajoute 1 à n
        n = n + 1
        resultat = 5 * v1 + (100 / 6) ^ (1 / (n - 1)) * v1 * (n - 1)
        If n > 10 Then Exit Do 'on arrète la boucle si n<10
        'on réinitialise le calcul
    Loop
     
    If n < 10 Then
    Range("B7").Value = n  'en B7 on aura la valeur de n
    Else
    Range("B7").Value = "Cuve d'eau claire trop petite"
    End If
     
    If n < 10 Then
    Range("B10").Value = (100 / 6) ^ (1 / (n - 1)) * v1 'en B10 on aura le volume pour chaque rinçage à partir du second
    Else
    Range("B10").Value = "Cuve d'eau claire trop petite"
    End If

    sinon j'ai dessiner un bouton, et je lui ai affecté la macro. Tout simplement avec un click droit sur le dessin et affecter macro...

    Maintenant, ça marche du tonnerre!!!!!!!

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [XL-2010] [VBA] Comment faire une formule avec une variable ?
    Par Fackem dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/08/2014, 15h04
  3. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  4. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  5. Souci avec une formule par une fonction Selection.validation
    Par mennix dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 02/08/2007, 22h45

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