Calcul de vraiables

Bonjour à tous,

J'ai posté hier une question et Banzai64 m'a gentiment répondu. Néanmoins, je déclare des variables issues d'un userform et les nomes D, t, F, etc. puis envoi leur valeur dans des cellules. Plus trad, je les réutilises, toujours dans la même sub et calcul une variable z qui est égale à (L^2/D*t)^0.5

Cela fonctionnait. Je précise que ces variables sont des nombres décimaux et que je les déclare comme des single. Cela fonctionnait, mais ne le fait plus. Un avis ?

Je souhaiterai continuer à utiliser ces variables en les nommant, cela m'aide à vérifier que mes calculs sont conformes à la norme que j'utilise. Il s'agit certainement d'une bêtise, car l’exécution de ma macro, bloque sur le calcul de la variable z et la ligne apparait surlignée en jaune. Lorsque je survole chaque terme avec ma souris, Excel affiche une fenêtre dans laquelle je peux voir qu'Excel a bien pris la valeur de D, t, L mais sur z, Excel indique type vide, idem pour un autre calcul avec une variable nommée k2

En PJ mon fichier XL.

Merci

4calcorr3-1.xlsm (29.43 Ko)

Je viens de voir que si je remplaçait ma variable par sa valeur stockée dans une cellule, cela fonctionnait. Je ne sais pas, mais si dans une macro via un inputbox ( exemple fortuit : L = InputBox("Entrez la longueur du défaut sans unité") ) A priori, on peut sommer, multiplier diviser L mais pas l'élever au carré... Etrange.

Si quelqu'un a une réponse ... J'ai changé le type de ma variable z, qui me calcul L²/Dt mais cela ne fonctionne pas.

Bonjour

Tu peux utiliser des variables

Mais pour un meilleur suivi (compréhension) évites de nommer tes variables comme le nom de tes contrôles

le code

Val(Replace(M, ",", "."))

peut être utilisé pour initialiser tes variables

Exemple

Dim Diametre as Single
.
.
.
Diametre =  Val(Replace(D, ",", "."))

Toute information saisie dans un contrôle est du texte

Même le InputBox (fonction) te retourne du texte

Mon avis

En cas d'opération l'interpréteur VB essaie de transformer les textes en nombres (comment il fait - c'est son problème )

et s'il n'y arrives pas (exemple un point à la place d'une virgule )---> Message d'erreur

Pour cela on transforme le texte en nombre par Val(Replace(Texte, ",", "."))

Merci encore une fois Banzai64. Ok, après modif, cela fonctionne. C'est étrange. Cela fonctionnait plusieurs fois, puis bloquait. Ok, je dois donc faire la différence entre variables et contrôles. cela semble effectivement tenir debout et c'est en partie ma faute de débutant. En core une fois sauvé.

Rechercher des sujets similaires à "calcul vraiables"