Fonction goalseek sous VBA

Bonjour,

J'aimerai insérer une fonction goalseek dans un fichier VBA sans faire appel à des cellules sous excel (un goalseek direct de valeurs présentes sur mon userform1).

Concernant le calcul, il s'agit de determiner la tension d'un câble en fonction de variation de température et de charges extérieurs (vent...). Mon équation à résoudre est la suivante (avec les noms définis sous VBA):

(TensionCalculee^2)*(TensionCalculee - Membre1 + Membre2 + Membre3) = Membre4

L'inconnue à déterminer via la fonction goalseek est donc "TensionCalculee" (j'ai déjà déterminé par des calculs intermédiaires les différent membre pour un cas donné (par exemple, câble: "Cu.145.8mm²", "sans perturbations", "longueur portée = 45m", "température = 40°C" ==>lancer le calcul).

J'arrive parfaitement à utiliser cette fonction sous Excel avec des cellules mais je bloque pour ce cas... :/

Merci beaucoup pour votre aide

Morgan

Bonjour,

Pour faire court, si tu tiens déjà ta solution VBA par une feuille Excel ... rien ne t'interdit d'effectuer ton goal-seek de cette manière et d'afficher le résultat ainis obtenu dans ton userform ...

Bonjour, oui je sais que cette solution est possible mais j'aimerai plûtot que tout se passe sous VBA et conserver mon Excel comme base de donnée pour mes différents câble

Bonjour,

J'avoue que c'est la solution de "paresse" ... pour éviter de coder davantage ... car je n'ai pas ouvert ton fichier

Re ...

Pour me faire gagner du temps, pourrais-tu poster ton VBA GoalSeek qui fonctionne pour la feuille Excel ?

Exscuse moi je me suis mal exprimé... je maîtrise cette fonction (valeur cible) mais mais je n'ai pas essayé de transférer les différents membres (Membre1, Membre2, Membre3, Membre4) calculés sous VBA vers Excel afin de d'effectuer le calcul et de réinjecter le résultat final dans "TensionCalculee" sous VBA.

Voilà les lignes de code que j'ai essayé rentrer mais sans succès

Sub Calcul_valeur_cible()

End Sub

D'ailleur je vais devoir remplacer le "ChangingCell" par autre chose (c'est la forme du code que j'ai récupéré d'une macro similaire sous Excel)

Du coup, il faudrait essayer de tester le code suivant dans le UserForm ...

Private Sub Calcul_valeur_cible()
Dim Cible As Range

Cible = (Me.TensionCalculee ^ 2) * (Me.TensionCalculee - Me.Membre1 + Me.Membre2 + Me.Membre3)
Cible.GoalSeek Goal:=Me.Membre4, ChangingCell:=Me.TensionCalculee

End Sub

Merci James007 pour ton aide

Alors j'ai essayé d'insérer ton code et même en bidouillant un peu j'y arrive toujours pas

Je joint le fichier avec le code en question (je suis vraiment débutant en VBA donc c'est pas impossible que j'ai juste fait une erreur ou un oublie stupide quelque part )

Bon je mouline trop là... je vais finalement essayer de faire le calcul sous Excel et d'importer la solution sous VBA, c'est plus simple je pense !

Re,

Je viens de regarder rapidement ton fichier ...

Avant d'aller plus loin, tu dois faire attention dans ta UserForm à tous tes TextBoxes que tu as formattées en Texte ... alors que ce sont tous des nombres avec lesquels tu veux faire des calculs ...

Yes je viens de jetter un coup d'oeil mais j'ai pas remarqué d'option dans les propriétés de mes textbox qui permettent changer le type de données (texte, chiffres, dates...)

Re,

Désolé, mais ce n'est pas le format des textboxes qui pose problème ...

Je viens de comprendre que toutes les variables nécessaires pour faire les calculs ne sont "loadés" dans ta UserForm ...

comme la longueur de portée, la température, le chargement dû au vent, la tension calculée ...

Y-a-t-il une raison ???

Pas de probs

Et bien si elles le sont non ? j'arrive déjà à calculer les différents membres de mon équations sous VBA donc je pense que c'est bon de ce côté là.

Je suis entrain de faire un exemple plus simple du type de calcul que j'ai besoin de réaliser en goalseek, je poste ça dans 5min

Voilà le fichier c'est le même cas de figure mais simplifié au maximum

Du coup même question ^^ : comment insérer une fonction goalseek directement dans le code VBA afin de calculer X en fonction de valeurs définies A et B par l'utilisateur

Je suis pas très sur du calcul ...m'enfin faut tester

Merci mais ce polynôme est un peu plus dur à résoudre que ça d'où l'utilisation du goalseek afin de faire faire des itérations au programme afin de trouver la valeur de X

Bonjour,

goalseek est une méthode de l' objet range.

or cet objet, à ma connaissance, est une objet d'une feuille de calcul. tu es donc obligée de passer par une feuille de calcul pour faire fonctionner goalseek.

Ok ça marche merci je vais donc passer par Excel (c'est bien dommage quand même :/)

Voilà j'arrive à effectuer le calcul sous Excel:

  • Je rentre mes paramètres A et B depuis le userform1 que je lance depuis la feuil1
  • Quand je clique sur calculer, je détermine mon X sur la feuil2

Par contre je n'arrive pas à renvoyer la valeur de mon X depuis Excel vers mon userform1 :/

Si quelqu'un sait comment faire, merci d'avance (oui je suis un débutant...)

Félicitations pour avoir trouvé la solution ...

Pour ce qui est du lien que tu cherches ...

Me.TextBox1.Value = Worksheets("Feuille1").Range("D2").Value

Rechercher des sujets similaires à "fonction goalseek vba"