Division par zéro ??VBA Excel

  • Initiateur de la discussion Initiateur de la discussion Pat
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Pat

Guest
Bonjour à tous,
voila mon problème : je fais un calcul mais qui ne fonctionne pas, l'erreur est : division par zéro ????
Private Sub TxtDébitDésiré_Change()
With FeuilledesaisieCTA
.TxtVitesseDésirée.value = Val(TxtDébitDésiré) / Val(TxtSurface) / 3600 / 1000000
End With
End Sub

sachant que val(TxtSurface) peut etre avec décimale

OU est l'erreur ???? Problème de format ????
Merci pour votre aide
 
Bonjour et merci pour vos réponses,

TxtSurface est le résultat d'un calcul donc la valeur peut etre 0,001234 (par exemple)et suis certain qu'elle n'est pas à zéro car je la visualise dans mon Userform.
et c'est lorsque que je rentre une valeur dans TxtDébitDésiré que j'obtiens le message d'erreur.

Est ce que je dois mettre un format pour la valeur TxtSurface ???
Merci pour votre aide
@+
 
REsalut MichelXLd,
Ton astuce marche a merveille !!! c'est super;merci
mais la valeur est de 20 chiffres derrière la virgule, y aurait il un moyen d'avoir 3 chiffres derrière la virgule avec arrondi.
Si je n'buse pas de votre temps ?
Merci encore 😉
 
Bonjour a tous,

Pas de solution, mais juste une question a Pat concernant le post Lien supprimé ou Lien supprimé afin de savoir si le problème est résolu!!!!

Je pense que la moindre des choses lorsqu'on post, c'est de donner des nouvelles, ne serait-ce que pour savoir si le problème est résolu ou non.

@+
 
Salut Porcinet82,
Je te remercie pour ton dernier post, effectivement j'ai oublié de te répondre et ne trouve pas d'explications valables à te donner et m'en excuse.
Ce n'est vraiment pas le genre de la maison de demander de l'aide et de ne pas remercier les personnes plus compétentes que moi et qui s'investissent pour aider les autres, donc encore une fois excuses moi si je t'ai froissé.
Pour information, je poste sur plusieurs forum en même temps et quelqu'un à trouvé une solution à mon problème. Si tu es intéressé par mon classeur, fais le moi savoir ,çà sera avec plaisir que je te l'enverrai, ainsi qu'aux autres d'ailleurs!!!
Bonne journée à tous!!!
 
rebonjour à tous , bonjour cher Porcinet82


pour Marco :

La fonction Val ne reconnaît que le point comme séparateur décimal

la fonction CSng ,( tout comme CDbl ,CDec ,CInt ,CLng ) permet de transformer directement la donnée du TextBox en valeur numerique
tu trouveras d'autres infos sur ces fonctions dans l'aide en ligne Excel


pour Pat :

tu peux tester

= Format(CSng(TxtDébitDésiré) / CSng(TxtSurface) / 3600 / 1000000, '0.000')



bonne journée
MichelXld
 
Re,

Pas de souci, je voulais juste savoir si j'avais pu t'aider ou non.

Pour ton classeur, je veux bien voir le code que tu utilise pour l'incrémentation des données lorsque tu cliques sur le bouton Valider dans le USF. Par ce que moi, j'utilise des Goto et sa devient vite le b....l. Merci d'avance.

@+
 
MichelXLD,
ton code pour le format de 3 chiffres après la virgule fonctionne mais j'ai été trop vite en tout a l'heure en disant que le changement Val par CSng était OK effectivement lorsque je rentre les valeurs dans le Userform , tout est OK mais lorsque je valide les données avec le bouton OK j'obtiens l'erreur incompatibilite de type
(je ne cliquais pas sur OK tout à l'heure)désolé.

Pour tous: si vous voulez le classeur et comment le remplir:
http://cjoint.com/?mAnnbilx2p (classeur)
http://cjoint.com/?mAnrnoESAe (copie ecran)

Merci à vous
@+
 
rebonjour

c'est normal que tu ais une erreur lorsque tu utilises le bouton OK : celui ci reinitialise les Textbox

.TxtDébitDésiré = ''

.TxtVitesseMesurée = ''
...etc...


et dans le meme temps tu utilises les evenements Change pour ces Textbox


Private Sub TxtDébitDésiré_Change()
FeuilledesaisieCTA
.TxtVitesseDésirée.Value = Format(CSng(TxtDébitDésiré) / CSng(TxtSurface) / 3600, '0.000')
End Sub

...il n'est pas possible d'effectuer une division avec 'rien'


pour reinitialiser ton UserForm , tu peux faire un essai en remplaçant

With FeuilledesaisieCTA
.TxtDescriptiondelaCTA.Text = ''
.TxtMarque.Text = ''
.TxtType.Text = ''
.OpbGaineronde = False
.OpbGainecarrée = False
.TxtLargeur.Text = ''
.TxtHauteur.Text = ''
.TxtDiamètre.Text = ''
.TxtSurface.Text = ''
.TxtVitesseDésirée = ''
.TxtDébitDésiré = ''
.TxtVitesseMesurée = ''
.TxtDébitMesuré = ''
End With

par

Unload Me
FeuilledesaisieCTA.Show



je n'ai pas regardé la totalité de l'UserForm , il y aura peut etre d'autres adaptations ce type à realiser



bon apres midi
MichelXld
 
Resalut MichelXLD
Cà fonctionne nickel!!!!!!!!!
C'est génial, t'es un chef
Un grand merci à tous de votre aide 🙂 🙂 🙂
Bon après midi et a bientot.
Malheureusement , je ne pourrai pas vous aider en programmation mais si vous avez un problème en chauffage (régulation) n'hésiter pas, suis a votre disposition!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
788
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
736
Réponses
9
Affichages
508
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
520
Réponses
4
Affichages
521
Réponses
4
Affichages
754
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour