Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Come back

  • Initiateur de la discussion petrolman
  • Date de début
P

petrolman

Guest
Bonjour a tous,

Eh oui me revoila avec un pb quelque peu similaire au precedent mais laissons ce dernier couler doucement dans les profondeurs du forum.

Titre: Solveur generale

Pre-probleme: L'utilisation du solveur est tres importante dans mon travail car j'essaye de rendre la theorie la plus proche possible de la realite. Cependant, cette option, quoique tres utile, est limite car je ne peux rentrer qu'un seule valeur a la fois (vu le nombre de mes donnees, ce n'est pas tres pratique).

1) Peut-on utiliser le solveur d'une maniere plus generale cad en rentrant plus d'une valeur a cibler et plus d'une valeur a atteindre sans passer par un code en VBA?
Si non,

Probleme:
2) Je cherche a transformer une colonne B en une colonne A. La colonne B est composee d'une formule dont le parametre le plus important est situe dans la colonne C. Je cherche a obtenir une colonne D, qui soit en quelque sorte une colonne C remaniee, qui permettrait la transformation des valeurs de ma colonne B en celles de A.
Tres facile valeur par valeur, comment puis-je l'automatiser?
je joins un fichier pour un peu plus de clarte...

Decouvrant il y a peu ce que voulait dire VBA, j'accueille avec joie toute personne susceptible de m'apporter un peu d'aide;;;
[file name=modele_transfo.zip size=23226]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/modele_transfo.zip[/file]
 

Pièces jointes

  • modele_transfo.zip
    22.7 KB · Affichages: 27

Ti_

Nous a quitté
Repose en paix
il vaut mieux donner un nom explicite à tes posts, sinon personne ne te répondra

Pour répondre à ton problème, je suppose que si tu connais les formules pour trouver l'angle, avec un peu de trigo, tu devrais trouver une formule inverse te permettant d'obtenir la Vp en fonction de ton angle.
En attendant, comme c'est plus facile à faire en passant par le solveur, je te donne une très simple macro qui teste toutes les cellules de la colonne H de ton exemple et qui, si elle y trouve une formule qui commence par =ASIN suppose qu'on est sur une ligne valide et lui applique donc le solveur.
Ainsi tu peux traiter l'ensemble de ta feuille en un seul coup.
Inconvénient, tu dois respecter scrupuleusement la disposition de ta feuille démo, sinon ça ne fonctionnera plus.

Voici la macro à coller dans un module et que tu peux ensuite appeler depuis le menu Macros d'Excel :

Sub Goals()
'Ti Ce lien n'existe plus
Dim Cel As Range, Plage As Range
Application.ScreenUpdating = False
Set Plage = ActiveSheet.UsedRange
'on se base sur la formule trouvée dans la colonne H
For Each Cel In Plage.Columns(8).Cells
With Cel
If Left(.Formula, 5) = '=ASIN' Then
'la colonne D
.Offset(0, -4).ClearContents
If Not Cel.GoalSeek(.Offset(0, 5).Value, .Offset(0, -4)) Then .Offset(0, -4) = 'erreur'
End If
End With
Next Cel
Application.ScreenUpdating = True
End Sub
 
P

petrolman

Guest
Merci Ti_, je suivrai tes conseils dorenavant...

Concernant la macro, c tres bon encore une fois! Je te remercie...
Un petit hic, cependant...comme mon modele theorique est tres instable, il se peut que parfois des cellules de ma colonne H soit #NOMBRE# et ne commence donc pas par ASIN.
Du coup, sur mon modele (a 1000 lignes), il me marque:
Erreur 404
If Not Cel.GoalSeek(.Offset(0, 5).Value, .Offset(0, -4)) Then......

Comment pourrais-je adapter le code pour que soit il ne voit pas les cellules affectes par #NOMBRE# ou que soit il affecte une non-valeur (ou laisse case blanche) dans ma colonne D resultante?
Tout modele theorique (dans mon cas) est malheureusement compose de plus ou moins d'instabilites ce qui rend les choses plus difficiles.
Comment puis-je faire?

Bonne fin d'apres-midi.....

PS: je ne peux malheureusement pas trouver une formule inverse sur le papier me permettant d'obtenir Vp en fonction de mon angle: les formules, a l'origine compliquees et imbriquees les unes aux autres, rentrent dans une resolution d'equations trop complexe pour pouvoir les resoudre (j'ai essaye pendant plus d'un mois...)
 

Ti_

Nous a quitté
Repose en paix
Pourrais-tu m'envoyer un fichier modèle reprenant ton organisation réelle que je vois ça plus facilement (surtout tes histoires de #NOMBRE#). Eventuellement directement sur ma Bal si ça dépasse les 50 ko.
 
P

petrolman

Guest
Re Ti_,

Apres re-re verification, je voudrai rajouter un ptit detail qui peut soit faciliter le probleme soit le compliquer (mais bon dans ce cas la...).
Tu as raison quand tu dis qu'il faut deja remplacer les #NOMBRE#...a effectuer cependant modification de Vp ou Vrms (si tu mets 2000m au lieu de 4000m en objectif a atteindre, tu vois qu'il n'y a pas de pb de ce type).
En re-regardant le modele que je t'ai envoye, je me suis rendu compte que E6 etait une valeur mais que tout le reste de la colonne etait une formule reliee a D cad Vp.
Cette ligne correspond au debut de mon modele et il faudrait que pour tout modele, mon niveau de reference soit E6=D6 et non E6=valeur....cad que E6 et D6 soit toujours = meme apres transformation.
Ca peut peut-etre faciliter le solveur a nous donner de bonnes valeurs (ou alors a le rendre completement aveugle).
Dans tous les cas, je tente la macro que tu m'as envoye...
Thanks a lot,

a+
 
J

Jon

Guest
bonjour


un exemple sur la première page, des explications plus généralistes sur le solveur en seconde page.
<Ce site n'existe plus
<Ce site n'existe plus


des classeurs exemples :
<Ce lien n'existe plus

bye
 
P

petrolman

Guest
Re,

J'ai applique ta macro mais erreur de compilation 'End With sans With' alors que je pense qu'il en faut un et si je l'enleve, j'obtiens 'Next sans For' vers la fin de la macro...Comment m'en sortir?
 
P

petrolman

Guest
Jon, Ti_ et autres

Tout d'abord Jon-steph, merci pour tes adresses, je les scrute a la loupe et j'espere m'en servir (pas eu le tps de te remercier avant, ait ecrit mon dernier post au meme moment!

Deuxio, Ti_ toi qi commence a me cerner (si tu te sens harceler ou te sens plus la force de suivre le pb, dis le moi :kiss: ):

a) Si on ne considere plus un modele qui affiche des instabilites (cf #NOMBRE = a peu pres 4000m d'objectif) cad 1er modele complet envoye sur ta Bal (avec 2000m d'objectif, il n'y a pas d'instabilites mais ta 1ere macro s'arrete a la 500e ligne et marque erreur (comprends pas trop) sinon ta 2e macro ne marche dans aucun des modeles chez moi, histoire de End With voir plus haut) mais qu'on considere le modele d'a peu pres 10 couches poste plus haut au debut.
Ta 1ere macro etait nickel: Je pense que pour pouvoir resoudre mon modele complet, il faut malheureusement prendre en compte les dernieres modifications que j'ai citees (desole) a savoir K6 non plus valeur 'simple' mais D6^4 (sinon le solveur nous renverra des valeurs 'fausses'...)(hop, un ptit rouge pour continuer...).
2e modification et la plus importante, E6 (Vrms) non plus valeur 'simple' mais toujours = a D6 (pour d'autres qui voudraient m'aider).

Si on peut deja adapter ton 1er code a ces modifications (faute de fonctionnement du 2e chez moi), je pense que c tout bon...
Attention: je ne cherche en aucun cas a reproduire un modele theorique exactement = au modele relle (j'habite pres de Lourdes mais quand meme...), j'espere plus basiquement determiner un modele qui s'en approche le plus possible (dans la limite du code VBA, meme si les 2 colonnes de valeurs d'angles sont eloignes c pas grave du moment que la routine peut fonctionner...) pour ensuite trouver un passage entre les 2 (physique theorique) donc a voir peut etre avec la precision du solveur.
Voila, je bosse de mon cote, je ne sais pas si c realisable mais si qqun peut m'aider, c pas de refus...
PS: post un peu long mais vaut mieux ca pour la comprehension(
:sick: ) que 5 posts sans explication
Bonne soiree a tous
 
P

petrolman

Guest
Bonsoir Ti_ et forum,

Evidemment j'ai ecrit mon dernier post au moment ou tu envoyais une nvelle version de macro sur ma Bal...
Je tremble un peu a la vision de te ton resultat Ti_...........
Il me faudra qques jours pour verifier si c possible et si ca n'enduit pas d'erreurs (pcq tu as pris en compte mes rectifications et que ca peut marcher alors que je ne m'attendais pas un resultat aussi incroyable donc verification (certaines personnes autour de moi pensent que c un peu biaise pour le moment mais pas moi)...!!!).
En effet, pour info et pour mon info, ta mise en forme conditionnelle marque en rouge les valeurs dont le solver n'a pas trouve une valeur proche de la valeur relle (c bien ca? par observation c ca comme tu me l'as dis sur ton mail...): c super mais saches que ces rouges risquent de diminuer grandement etant donne que je t'ai donne des valeurs reelles en qqsorte ' faussees'' mais qui ne doivent en aucun cas interagire avec le code (confidentialite oblige, desole, ne te vexes pas mais la guerre du petrole ou d'eau est rude ces tps-ci et elle le sera encore plus ds qqes tps).
De plus, c bien signale, la 1ere valeur ne correspond pas (rouge) et pourtant c celle qui conditionne le reste du modele (interaction d'une ligne a l'autre).
Interpretation: c un pb offshore cad d'exploitation sous la mer et que moi meme je ne peux, pour le moment, determiner un bon angle dans ma 1ere couche (ligne 6 ds mon modele) etant donne que celle-ci (cad 742 a 744m), c les 2 derniers metres de flotte avant de toucher qque chose de 'solide'!!!

Par consequent, je vais tester tout ca et meme si pb dans exploitation offshore (je ne sais pas encore...), ca peut etre tres efficace ds pb onshore (pas en France evidemment mais ailleurs).

Un grand merci Ti_, je remets ce post a jour ds qques jours (ou tres vite si je travaille la nuit) mais bon je crois que y en a une qui va pas etre etre contente si jamais....

Bonne soiree a toi Ti_ et a tout le forum!!!!
 

Discussions similaires

Réponses
5
Affichages
748
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…