Boucle infinie affichage Err_Handler

Bonjour,

Sur la formation que je suis il y a une partie "gestion de l'erreur."

J'ai écris le programme mais cela me créée une boucle infinie qui affiche constamment "veuillez saisir une valeur numérique".

Exemple: si l'on renseigne un chiffre 50.2 au lieu de 50,2

Je suis désolé mais je ne vois pas ce qui coince dans mon programme.

J'ai écris exactement le même programme que celui de la formation.

En pièce jointe le fichier

7prix.xlsm (13.16 Ko)

Public Const TVA As Currency = 20

Sub Test_Constante_TVA()

Dim Prix As Variant

On Error GoTo Err_Handler

Prix = InputBox("Veuillez saisir le prix HT :")

Prix = Prix + (Prix * TVA / 100)

MsgBox "Le prix TTC est de : " & Prix & " €"

Exit Sub

Err_Handler:

Select Case Err.Number

Case 13

MsgBox "veuillez saisir une valeur numérique"

Resume

Case Else: MsgBox Err.Description

End Select

End Sub

Merci par avance

Cordialement

Mathieu

Bonjour

Boucle infinie ? Que voulez-vous dire ?

Cela fonctionne bien mais vous êtes sous MAC si je vois bien ?

Si oui, par défaut le point devient virgule je pense.

Est-ce que le code doit fonctionner dans les deux environnements PC et MAC ?

Exemple: si l'on renseigne un chiffre 50.2 au lieu de 50,2

Que ce soit l'un ou l'autre cela fonctionne sous excel windows.

Cordialement

Bonjour Dan,

Merci pour votre retour.

Oui je suis sur Mac.

La vidéo de la formation est traitée sur PC.

Le but est avant tout que j'apprenne il faudrait que cela puisse fonctionner sur mon Mac.

En fait dans la vidéo de la formation on fait exprès de commettre une erreur (écrire 50.2 au lieu de 50,2) pour lancer l'étiquette d'erreur. Mais bizarrement pour moi cela me lance continuellement une boucle infinie. Du coup je suis obligé de quitter la feuille Excel, ce qui ne va pas

Je ne comprends pas d'où cela provient.

Merci par avance

Cordialement

Mathieu

Bonjour Mathieu64, Dan, le forum,

@ Dan: chez moi pas d'erreur que ce soit un point où une virgule, en revanche si je saisie des lettres, le message d'erreur apparait en boucle.

Cordialement,

Re

Je vais regarder cette après midi pour le MAC mais essayez déjà comme ceci :

Essai 1 : Supprimez l'instruction "resume" car c'est elle qui vous met en boucle. ensuite relancer votre code

Essai 2 : Remplacez l'instruction resume par Call Test_Constante_TVA

In fine il faudra modifier le code car si vous cliquez sur Annuler, cela vous met à nouveau en boucle.

@xorsankukai : Si vous utilisez Excel Windows, il n'y a pas d'erreur que ce soit avec un point ou une virgule. Mettez une lettre pour voir...

Cordialement

CELA FONCTIONNE !!!!

Merci Dan !!!!

Au top

Re,

@xorsankukai : Si vous utilisez Excel Windows, il n'y a pas d'erreur que ce soit avec un point ou une virgule. Mettez une lettre pour voir...

Oui, Dan, c'est bien ce que je vous disais....

@ Dan: chez moi pas d'erreur que ce soit un point où une virgule, en revanche si je saisie des lettres, le message d'erreur apparait en boucle

Cordialement,

Merci xorsankukai

Re,

@ xorsankukai : "Oui, Dan, c'est bien ce que je vous disais.." désolé je n'avais pas lu le message

@Mathieu, s'il revient.... dans le code :

  • en dessous de la ligne "Inputbox...." mettre If prix <>"" then
  • au dessus de "Exit sub" mettre Enf If

Bonne soirée

Merci Dan pour ton retour.

Dans la vidéo de la formation il recommande de ne pas utiliser if dans ce cas pour faciliter la maintenance du programme par la suite. Demain je testerai avec if pour m'entrainer.

Encore merci à vous deux.

Bonne soirée

Mathieu

Re

Ok mais si on ne met pas de données dans l'inputbox, vous n'arriverez pas à sortir du code.

En supposant que ne mettez pas de données dans l'inputbox le IF donne :

  • si Annuler, vous sortez du code
  • si OK, le prix sera de 0

Si vous vous trompez, exemple vous mettez une mettre au lieu d'un chiffre, le code vous demande une saisie numérique

Faites le test avec ou sans IF sur les valeurs suivantes : Lettre, 0, un chifrre ou vide

Cordialement

Rechercher des sujets similaires à "boucle infinie affichage err handler"