Arrêter une execution VBA
Résolu/Fermé
linkcr15
Messages postés
362
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
31 mars 2016
-
Modifié par linkcr15 le 24/04/2012 à 15:15
f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 - 24 avril 2012 à 16:57
f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 - 24 avril 2012 à 16:57
A voir également:
- Arreter execution vba
- Excel compter cellule couleur sans vba - Guide
- Arreter une macro vba ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Erreur d'execution 1004 ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
6 réponses
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
24 avril 2012 à 15:49
24 avril 2012 à 15:49
Bonjour,
La validation de l'envoi se fait par le click d'un bouton??
La validation de l'envoi se fait par le click d'un bouton??
linkcr15
Messages postés
362
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
31 mars 2016
12
24 avril 2012 à 16:01
24 avril 2012 à 16:01
Exactement je suis dans Private Sub Cmd_Enregistrer_Click(). J'ai changé mon code en ça :
Je vais donc bien dans les If et je n'envoie pas les données si il y a une erreur, mon seul problème est que je n'affiche pas l'erreur obtenue, je ne rentre pas dans Etiquette.
Je sais que j'ai des erreurs de syntaxe dans le On Error GoTo, je ne sais pas l'utiliser, quelqu'un peut me dire comment aller dans l'étiquette si je relève une erreur svp?
For ligne = 5000 To 1 Step -1 If feuilDemande.Cells(ligne, 1).Value <> "" Then numero = ligne On Error GoTo Etiquette If Me.Txt_Demandeur.Text = "" Then erreur = "Veuillez entrez la personne qui fait la demande" MsgBox (erreur) Exit Sub End If MsgBox ("apres demandeur") If Cmb_Type.Value = "" Then erreur = "Veuillez indiquer le type de la demande" Exit Sub End If If Txt_Nature.Text = "" Then erreur = "Veuillez entrer la nature de la demande" Exit Sub End If If Cmb_Priorite.Value = "" Then erreur = "Veuillez entrer la priorité de la demande" Exit Sub End If If Not (Me.Txt_Livraison.Text Like "**/**/**") Then erreur = "Champ date de livraison incorrect, veuillez entrer un format de date (jj/mm/aaaa)" Exit Sub End If If VarType(Txt_Progression.Text) = 8 Then erreur = "Veuillez entrer un pourcentage de progression valide" Exit Sub End If If Not (Me.Txt_Fin.Text Like "**/**/**") Then erreur = "Champ date de fin incorrecte, veuillez entrer un format de date (jj/mm/aaaa)" Exit Sub End If MsgBox ("Numero de la demande : " & numero) feuilDemande.Cells(ligne + 1, 1).Value = numero feuilDemande.Cells(ligne + 1, 2).Value = Txt_Demandeur.Text feuilDemande.Cells(ligne + 1, 3).Value = Format(Now, "dd/mm/yyyy") feuilDemande.Cells(ligne + 1, 4).Value = Cmb_Type.Value feuilDemande.Cells(ligne + 1, 5).Value = Txt_Nature.Text feuilDemande.Cells(ligne + 1, 6).Value = Cmb_Priorite.Value feuilDemande.Cells(ligne + 1, 7).Value = Format(Txt_Livraison.Text, "dd/mm/yyyy") feuilDemande.Cells(ligne + 1, 8).Value = Txt_Retard.Text feuilDemande.Cells(ligne + 1, 9).Value = Val(Txt_Progression.Text) / 100 feuilDemande.Cells(ligne + 1, 10).Value = Format(Txt_Fin.Text, "dd/mm/yyyy") feuilDemande.Cells(ligne + 1, 11).Value = Txt_Reponse.Text feuilDemande.Cells(ligne + 1, 12).Value = Txt_Efficacite.Text Exit Sub End If Next ligne Etiquette: MsgBox ( erreur) End Sub
Je vais donc bien dans les If et je n'envoie pas les données si il y a une erreur, mon seul problème est que je n'affiche pas l'erreur obtenue, je ne rentre pas dans Etiquette.
Je sais que j'ai des erreurs de syntaxe dans le On Error GoTo, je ne sais pas l'utiliser, quelqu'un peut me dire comment aller dans l'étiquette si je relève une erreur svp?
linkcr15
Messages postés
362
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
31 mars 2016
12
24 avril 2012 à 16:06
24 avril 2012 à 16:06
Autant pour moi, je n'avais pas du tout compris la fonction On Error GoTo, j'ai donc supprimé cette ligne pour simplement ajouté GoTo au dessus de mes Exit Sub pour ne pas envoyer mes données et relever l'erreur.
Merci quand même de t'être intéresser à moi f894009
Merci quand même de t'être intéresser à moi f894009
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
24 avril 2012 à 16:13
24 avril 2012 à 16:13
Re,
Un instant de réflexion.........
Un instant de réflexion.........
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
linkcr15
Messages postés
362
Date d'inscription
mercredi 7 janvier 2009
Statut
Membre
Dernière intervention
31 mars 2016
12
24 avril 2012 à 16:52
24 avril 2012 à 16:52
Le but de ma fonction était de n'effectuer les traitements SEULEMENT si tous les champs étaient bons. Mon code ne ressemblait à rien avant, j'avais pas compris la fonction On Error, je l'ai donc supprimée et j'ai seulement fait des GoTo comme cela :
Ainsi, s'il y a une erreur, je vais à Etiquette et j'arrête le programme en affichant mon erreur et en laissant la main à l'utilisateur pour changer, comme je le voulais ^^
If Cmb_Priorite.Value = "" Then erreur = "Veuillez entrer la priorité de la demande" GoTo Etiquette Exit Sub End If
Ainsi, s'il y a une erreur, je vais à Etiquette et j'arrête le programme en affichant mon erreur et en laissant la main à l'utilisateur pour changer, comme je le voulais ^^
f894009
Messages postés
17268
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 mars 2025
1 713
24 avril 2012 à 16:57
24 avril 2012 à 16:57
Re,
Bonne route
Bonne route