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
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é.