VB: Afficher ses propres erreurs de création de formulaire
Résolu/Fermé
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
-
Modifié par Anonyme209 le 30/03/2014 à 12:26
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 31 mars 2014 à 19:12
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 31 mars 2014 à 19:12
A voir également:
- VB: Afficher ses propres erreurs de création de formulaire
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Range vb - Forum VB / VBA
11 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 mars 2014 à 12:44
30 mars 2014 à 12:44
Bonjour,
C'est quel VB ? (VB6, VBA, VB.Net) ? Ça serait bien de le préciser, nous n'avons pas tous pris l'option "divination" dans notre cursus...
Il faut proscrire, autant que possible, les Goto dans un programme.
En VB6, il y a
En VB.Net, on utilise le Try ... Catch ... (http://msdn.microsoft.com/fr-fr/library/bb727317.aspx et https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement)
C'est quel VB ? (VB6, VBA, VB.Net) ? Ça serait bien de le préciser, nous n'avons pas tous pris l'option "divination" dans notre cursus...
Il faut proscrire, autant que possible, les Goto dans un programme.
En VB6, il y a
On Error Resume Next. On intercepte l'erreur s'il s'en produit une.
Sub test() On Error Resume Next MsgBox (test) If Err.Number <> 0 Then Mesbox ("Le fichier n'existe pas!") Exit Sub End If End Sub
En VB.Net, on utilise le Try ... Catch ... (http://msdn.microsoft.com/fr-fr/library/bb727317.aspx et https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement)
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
30 mars 2014 à 13:58
30 mars 2014 à 13:58
Visual Basic (Microsoft Visual Basic 2010)
Comme je vous l'ai dit, la variable public est définie à l'extérieur d'un sub.
Donc, pas moyen d'utiliser un "On error quelque chose"
Merci de votre aide.
Comme je vous l'ai dit, la variable public est définie à l'extérieur d'un sub.
Donc, pas moyen d'utiliser un "On error quelque chose"
Merci de votre aide.
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
Modifié par Anonyme209 le 30/03/2014 à 15:40
Modifié par Anonyme209 le 30/03/2014 à 15:40
Et je connais aussi Try... Catch... mais je vous l'ai déjà dit, c'est à l'extérieur d'un sub, et ça ne marche donc pas mieux que
On Error GoTo errorou encore
On Error Resume Next
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 mars 2014 à 16:13
30 mars 2014 à 16:13
Et pourtant ...
MsgBox(test) est bien dans un Sub ? Non ? c'est bien ce Sub qui appelle la variable public ? Non ?
Il faut mettre le Try... Catch... dans le Sub qui appelle la variable.
MsgBox(test) est bien dans un Sub ? Non ? c'est bien ce Sub qui appelle la variable public ? Non ?
Il faut mettre le Try... Catch... dans le Sub qui appelle la variable.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
Modifié par Anonyme209 le 30/03/2014 à 19:18
Modifié par Anonyme209 le 30/03/2014 à 19:18
Non:
On ne peut pas déclarer de variable public à l'intérieur d'un sub
En dehors d'un "Sub" ou d'une Fonction, j'ai tapé
Public test = System.IO.File.ReadAllText("C:\Test.txt")
On ne peut pas déclarer de variable public à l'intérieur d'un sub
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
30 mars 2014 à 20:18
30 mars 2014 à 20:18
Merci, mais je connais la différence entre une variable déclarée public ou local, par contre toi tu ignores comment ça fonctionne.
C'est dans ta Sub que tu utilises ta variable public. C'est donc dans la Sub que tu la gères.
C'est dans ta Sub que tu utilises ta variable public. C'est donc dans la Sub que tu la gères.
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
Modifié par Anonyme209 le 30/03/2014 à 21:17
Modifié par Anonyme209 le 30/03/2014 à 21:17
Je ne vois pas comment je peux la gérer alors que si le fichier n'existe pas, la variable n'est pas créée et le programme se ferme automatiquement en affichant une erreur.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
Modifié par Polux31 le 30/03/2014 à 21:45
Modifié par Polux31 le 30/03/2014 à 21:45
Ta variable public est déclarée où ? dans une classe ? un module ?
Sinon, un exemple :
Dans un module, ma variable public
A l'ouverture du formulaire principale
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Sinon, un exemple :
Dans un module, ma variable public
Module Module1 Public test As String End Module
A l'ouverture du formulaire principale
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Module1.test = System.IO.File.ReadAllText("C:\Test.txt") MsgBox(Module1.test) Catch ex As Exception MsgBox("Le fichier n'existe pas !") End Try End Sub End Class
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
31 mars 2014 à 16:14
31 mars 2014 à 16:14
Bonjour, voici les parties du code qui nous intéressent:
Public Class Form1 Public test = System.IO.File.ReadAllText("C:\Test.txt") Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MsgBox(test) End Sub End Class
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
31 mars 2014 à 16:18
31 mars 2014 à 16:18
Sinon, je vais essayer ta technique.
Public Class Form1 Public test Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try test = System.IO.File.ReadAllText("C:\Test.txt") MsgBox(test) Catch ex As Exception MsgBox("Impossible d'accéder à ""C:\Test.txt""") End Sub End Class
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
31 mars 2014 à 19:12
31 mars 2014 à 19:12
Merci, pour l'instant ça a l'air de marcher.