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

Excel Discussion :

Rechercher une solution


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Points : 10
    Points
    10
    Par défaut Rechercher une solution
    Bonjour,

    Je n'arrive pas à trouver la solution à mon problème.

    j'ai fait un alea de 12 nombres.
    Une formule en colonne F compte les nombres communs A:C dans F5:K5 par ligne

    je voudrais que le solveur Excel fasse F9 tant que S3 n'est pas égal ou supérieur à 8.

    Comment dois je programmer le solveur?
    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    De mon point de vue, vous n'avez pas besoin du solveur.

    Une solution possible par rapport à ce que j'ai compris de votre demande :

    - On réalise une boucle Do While Loop et on recalcule le classeur avec la méthode Calculate (F9). On déboucle lorsque S3 = 8.
    - On prend la précaution de déboucler au cas où S3 n'atteindrait jamais 8.

    On ajoute un bouton Réinitialiser pour changer la valeur de S3 si elle est égale à 8.


    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
    Option Explicit
     
    Sub GenererLesNombresAleatoires()
     
     Dim NombreDeCalculs As Long
     Dim CelluleResultat As Range
     
         NombreDeCalculs = 0
         Set CelluleResultat = ActiveSheet.Range("S3")
     
         Do While CLng(CelluleResultat) <> 8
     
             Calculate
             NombreDeCalculs = NombreDeCalculs + 1
             If NombreDeCalculs > 1000 Then Exit Do
         Loop
     
         Set CelluleResultat = Nothing
     
     
    End Sub
     
    Sub ReInitialiserS3()
     
             Calculate
     
    End Sub

    Cordialement.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Points : 10
    Points
    10
    Par défaut
    Bonsoir

    Merci pour cette solution par VBA, toutefois je sais qu'il est possible de trouver une solution via le solveur (but de l'exercice)
    Si je trouve, je vous mettrais la solution.
    pas simple !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ci-joint une solution à l'aide du solveur.

    L'utilisation des données variables directement avec la fonction ALEA n'est pas compatible avec le solveur, car après chaque calcul du solveur les données aléatoires sont déjà changées avec CALCULATE.

    Le principe est donc d'initialiser la zone des données variables du solveur (ZoneAleas) à partir des valeurs aléatoires (ValeursAleas). C'est ce que fait le bouton Initialiser.

    Pour vérifier que le solveur faisait bien son "boulot", j'ai mémorisé également les valeurs initiales de chaque série de la zone nommée ZoneAleas en bas de la feuille.

    J'ai dû changer le mode de calcul du solveur, le mode "GRG non linéaire" ne fonctionnant pas.


    Pour mémoire, la macro copiant les données aléatoires :

    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
    30
    31
    32
    33
    34
     
    Sub CopierCollerLesValeursAleatoires(ByVal FeuilleEnCours As Worksheet)
     
     Dim DerniereLigneSerie As Long
     Dim AireMemoSerie As Range
     
        With FeuilleEnCours
     
            ' Copie d'une série de valeurs aléatoires dans la zone nommée Zonealeas
            .Range("ValeursAleatoires").Copy
            With .Range("ZoneAleas")
                .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                .NumberFormat = "0.000"
            End With
     
            DerniereLigneSerie = .Cells(.Rows.Count, .Range("SerieTitre").Column).End(xlUp).Row
            If DerniereLigneSerie = .Range("SerieTitre").Row Then
                 .Range("SerieTitre").Offset(1, 0) = 1
            Else
                 .Cells(DerniereLigneSerie + 1, .Range("SerieTitre").Column) = .Cells(DerniereLigneSerie, .Range("SerieTitre").Column) + 1
            End If
     
            ' Mémorisation de la série
            Set AireMemoSerie = .Range(.Cells(DerniereLigneSerie + 1, .Range("SerieTitre").Column + 1), .Cells(DerniereLigneSerie + 1, .Range("SerieTitre").Column + 1 + 11))
     
            .Range("ZoneAleas").Copy AireMemoSerie
            With AireMemoSerie
                .NumberFormat = "0.000"
            End With
            Set AireMemoSerie = Nothing
     
        End With
     
    End Sub

    Cordialement.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Points : 10
    Points
    10
    Par défaut
    Bonjour et surtout merci pour cette réponse.

    J'aurais besoin d'une explication (je ne suis pas expert!)

    pourquoi 2 lignes ALEA() lignes 2 et 4 ? faut il en effacer une ligne?
    faut-il effacer les valeurs à partir de la ligne 22 avant de lancer le solveur et quand faut-il réinitialiser (et combien de fois car à chaque fois il ajoute une ligne de valeurs en dessous?)

    Ensuite je lance le solveur (résoudre) et je fais en résultat : afficher la réponse.
    (quand j'initialise tout, il me marque 'le solveur ne peut pas trouver de solution réalisable')

    si vous pouviez me faire un court mode op.
    bravo pour la solution.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Robert78 Voir le message
    pourquoi 2 lignes ALEA() lignes 2 et 4 ? faut il en effacer une ligne?
    faut-il effacer les valeurs à partir de la ligne 22 avant de lancer le solveur et quand faut-il réinitialiser (et combien de fois car à chaque fois il ajoute une ligne de valeurs en dessous?)

    Ensuite je lance le solveur (résoudre) et je fais en résultat : afficher la réponse.
    (quand j'initialise tout, il me marque 'le solveur ne peut pas trouver de solution réalisable')
    La ligne 2 contient vos cellules avec la fonction ALEA(), c'est ce qui permet de rénitialiser les cellules de la ligne 4 d'une façon simple. Sinon, après la première résolution du solveur avec un résultat = 8, il vous faudrait modifier F4:Q4 cellule par cellule, ou faire un copier coller depuis F2:Q2.

    Il ne faut pas réinitialiser le solveur sinon vous perdez les réglages. Après avoir réinitialisé avec le bouton, il vous suffit de lancer le bouton Résoudre du solveur.

    Vous pouvez effacer les séries mais pas la ligne de titre ou alors, il faudra modifier la partie du programme qui met à jour les séries. Cette partie de programme n'est pas essentielle, elle vous permet de contrôler les cellules de F4:Q4 qui ont été mises à jour par le solveur.

    Nb : Le lancement automatique du solveur directement en VBA avec une réinitialisation totale est encore une fois totalement "foireux", toutes les contraintes ne sont pas prises en compte. J'ai donc éliminé cette partie de programme de votre fichier.

    Cordialement.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Points : 10
    Points
    10
    Par défaut
    Re,


    merci pour ces explications.

    Avec ce nouveau fichier, le solveur me marque toujours "'le solveur ne peut pas trouver de solution réalisable" à chaque lancement de résoudre?

    Pourtant avant de faire résoudre, je clique une fois sur le bouton rouge réinitialiser.

    Que se passe-t-il sur ce nouveau fichier? merci
    bonne soirée

  8. #8
    Invité
    Invité(e)
    Par défaut
    Mettez au moins votre fichier en ligne....

    Cordialement.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Points : 10
    Points
    10
    Par défaut
    oui c'est le même qu'au dessus.
    je le joins.

    ma manip:

    clic sur réinitialiser (bouton rouge)
    je ne touche pas aux lignes à partir de 22, je laisse tel quel.
    puis
    données-solveur-résoudre et aussitôt:" le solveur ne peut pas trouver de solution réalisable"
    (à chaque fois)

    merci
    Fichiers attachés Fichiers attachés

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Robert78 Voir le message
    oui c'est le même qu'au dessus.
    je le joins.

    ma manip:

    clic sur réinitialiser (bouton rouge)
    je ne touche pas aux lignes à partir de 22, je laisse tel quel.
    puis
    données-solveur-résoudre et aussitôt:" le solveur ne peut pas trouver de solution réalisable"
    (à chaque fois)

    merci
    Cela marche nickel - chrome chez moi.

    Avez-vous les mêmes réglages d'options du solveur que sur ces vidages d'écran ?

    Cordialement.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Points : 10
    Points
    10
    Par défaut
    je n'ai pas ces écrans, j'ai juste 2 tableaux (images jointes , désolé pour la qualité)

    merci
    Images attachées Images attachées   

  12. #12
    Invité
    Invité(e)
    Par défaut
    Cochez a minima :

    - Modèle supposé linéaire.
    - Echelle automatique.
    - Supposé non négatif.
    - Mettez la convergence à 0,0001
    - Mettez la tolérance à 1%

    Si cela ne fonctionne toujours pas :
    - Retapez manuellement les paramètres du solveur en pointant directement sur les zones.

    Si cela ne fonctionne toujours pas augmentez :
    - Le temps maxi.
    - Le nombre d'itérations.

    Si cela ne fonctionne toujours pas, jouez sur les paramètres du bas.

    Bon courage.

    Cordialement.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Points : 10
    Points
    10
    Par défaut
    Bonjour

    J'ai tout essayé, j'abandonne...

    Quelle version Excel avez-vous? (j'ai 2007)

    En tout cas merci pour votre intervention. J'ai au moins compris le principe mais ce foutu Microsoft.....

    Cordialement.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Robert78 Voir le message
    Quelle version Excel avez-vous? (j'ai 2007)
    Bonjour,

    J'ai Excel 2010. J'ai moi aussi galéré avec ce solveur sur d'autres programmes.

    Il faut jouer sur le type de modèle. Dans mon dernier mail, je vous demandais de cocher Modèle linéaire car il correspondait à ce que j'ai sur ma version. Il se peut que le modèle de résolution fonctionne décoché.

    Il faut vraiment essayer toutes les combinaisons en jouant également sur la précision.

    Désolé pour vous.

    Cordialement.

Discussions similaires

  1. Recherche une solution de streaming live.
    Par gibsonSG_76 dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 12/02/2015, 00h03
  2. Réponses: 1
    Dernier message: 10/09/2014, 14h37
  3. recherche une solution
    Par kaddourinfo dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 30/01/2008, 17h04
  4. recherche d'une solution collision/action dans le contexte mmorpg
    Par noals dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 20/08/2007, 22h10
  5. Communication client/serveur: recherche d'une solution
    Par Razmoket dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 20/03/2007, 17h57

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