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 :

Problème mathématique et VBA [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 19
    Par défaut Problème mathématique et VBA
    Salut à tous,

    Voilà j'ai un petit problème de maths avec le code que je veux faire. Je ne me rappelle plus des ppcm (plus petit commun multiple) et tout ça pour pouvoir faire celà. Donc voilà mon problème:

    Disons que dans ma case A1 j'ai une liste déroulante de plusieurs valeurs: 200;220;240 etc...

    Je veux avoir a et b tels que a*40 + b*60 = "valeur dans A1" avec comme condition (a+b)=6 au maximum et priorité sur "a" c'est à dire si par exemple j'ai A1=240, je dois avoir 6*40 + 0*60 et non 3*40 + 2*60.

    Je sais pas si c'est assez claire mais je compte vraiment sur votre aide.

    Merci

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Résolution d'équation
    Bonsoir,

    En fait tu cherches à résoudre un système de 2 équations à 2 inconnues.
    de la forme

    E1 :p1 * a + q1 * b = r1
    E2 :p2 * a + q2 * b = r2

    Il y a plusieurs méthodes (graphiques, substitution...), mais la plus simple à programmer est celle qui utilise le déterminant, à savoir

    Delta = (p1*q2) - (p2*q1)

    Pour que ton système ait une solution, soit un couple de 2 valeurs a et b, il faut que Delta soit non nul.

    La formule de résolution

    a = (r1*q2 - r2*q1) / Delta
    b = (p1*r2 - p2*r1) / Delta


    Dans ton cas, le système se réduit à

    40*a + 60b = 80 (si 80 = valeur de ta cellule)
    1*a + 1*b = 6

    Delta = 40*1 - 1*60 = -20
    Delta non nul donc une solution.

    La formule de résolution :
    par hypothèse, v = 80

    a = (80*1 - 6*60) / (-20) = 14
    b = (40*6 - 1*80) / (-20) = -8,
    que tu pouvais obtenir par Substitution en connaisant a.

    Dernière chose, dans ce cas de figure, il n'y a pas de "priorité".

    Pour ce qui est de VBA, je te conseille de bien poser tes variables.
    L'application des formules ci-dessus n'en sera que plus simple.

    A ton service.

  3. #3
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Je ne vois pas trop le rapport entre ton pb et le ppcm...
    Ton pb semble bien rudimentaire. Tu as :
    • ax40 + bx60 = V
    • a = b = 6
    On en déduit
    0 + bx20 = V -240

    soit b = V/20 -12
    pour que b soit entier, il faut et suffit que v soit multiple de 20.

    De la valeur de b, on déduit celle de a
    a = 18-V/20

    Procédure :
    1. vérifier que V est multuple de 20 ( V mod 20 = 0)
    2. calculer a et b.

    Cordialement,

    PGZ

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Système Equation
    Salut Pgz et le forum,

    Sauf erreur, dans le problème de notre ami, il n'est pas donné que l'on souhaite des valeurs entières.

    Certes ta méthode reste valable à cette condition.

    La mienne, résultat d'anciennes notions dans ma vie antérieure, est plus générale.

  5. #5
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir,

    Citation Envoyé par MarcelG Voir le message
    Salut Pgz et le forum,

    Sauf erreur, dans le problème de notre ami, il n'est pas donné que l'on souhaite des valeurs entières.

    Certes ta méthode reste valable à cette condition.

    La mienne, résultat d'anciennes notions dans ma vie antérieure, est plus générale.
    Non, les formules que je donne sont évidentes et toujours valables. Simplement pour que a et b soient entiers, il faut que V soit divisible par 20.
    Si a et b ne sont pas demandés entiers, alors plus de condition de divisibilité de V, mais les formules de calcul de a et b restent bonnes.

    OK?

    Cordialement,

    PGZ

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Méthode de résolution
    Je ne mets pas en doute ta méthode (combinaison linéaire et substitution).
    La question que je me pose, à mon niveau qui n'est pas le tien, concerne la difficulté de programmation VBA, ou bien même l'écriture des formules.
    C'était le sens de mon intervention.

    Dès lors, pourquoi ce
    Ok?
    .

  7. #7
    Membre Expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Par défaut
    Bonjour,

    Si a et b ne sont pas des entiers, alors quelle est l'utilité de b?
    On trouvera toujours un nombre qui multiplié par 40 donnera le nombre de la cellule A1. Donc a sera toujours A1/40 et b ne sert a rien

  8. #8
    Membre éclairé
    Homme Profil pro
    Formateur & Dévrloppeur en Bureautique
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur & Dévrloppeur en Bureautique

    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut
    il y a le solveur pour résoudre les équations, sans oublier les calculs matriciels.
    Pourquoi chercher midi à quatorze heures?

  9. #9
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 19
    Par défaut
    Rebonjour, et merci pour vos réponses. J'avoue j'ai oublié de préciser que a et b étaient des entiers et PGZ c'est pas a=b=6 mais a+b=6.
    Je coprends ce que tu veux dire MarcelG et pour ce qui concerne la condition de priorité Je pense que je vais poser une condition a savoir si le nombre dans A1( la liste est composée de multiple de 20 oui) est multiple de 40 et <= 6(c'est pourquoi je parlais de ppcm) pas besoin d'inclure la condition avec 60 et sinon j'utilise les formues de MarcelG.

    Si vous avez mieux à proposer je suis preneur.
    Merci

  10. #10
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Citation Envoyé par diamond8 Voir le message
    Rebonjour, et merci pour vos réponses. J'avoue j'ai oublié de préciser que a et b étaient des entiers et PGZ c'est pas a=b=6 mais a+b=6.
    C'était juste une faute de frappe. J'ai bien fait le calcul avec a+b = 6.

    La réponse est
    a = 18 - V/20
    b = V/20 -12



    Il n'y a pas plus simple.

    PGZ

  11. #11
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 19
    Par défaut
    Merci

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

Discussions similaires

  1. [VBA]Problème pour requête VBA
    Par clairette31 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/07/2006, 10h48
  2. Problème affichage Aide VBA
    Par airbeone dans le forum Access
    Réponses: 6
    Dernier message: 19/06/2006, 16h32
  3. Problème mathématique
    Par Appwal dans le forum Mathématiques
    Réponses: 22
    Dernier message: 13/05/2006, 18h06
  4. VBA Excel - Problème de password VBA
    Par sat478 dans le forum VBA Word
    Réponses: 5
    Dernier message: 11/01/2006, 17h38
  5. Problème concaténation excel/vba
    Par rotterdamt dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 28/11/2005, 17h47

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