Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une erreur
avant le "niveau" VBA, il exprime son mécontentement. (c'est du moins comme
cela que je me l'explique).
Cordialement.
DanielBonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une erreur
avant le "niveau" VBA, il exprime son mécontentement. (c'est du moins comme
cela que je me l'explique).
Cordialement.
Daniel
Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une erreur
avant le "niveau" VBA, il exprime son mécontentement. (c'est du moins comme
cela que je me l'explique).
Cordialement.
DanielBonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir Daniel,
Merci pour cette précision concernant la limite de "On Error Resume ...".
Ca me fait un peu drôle d'entendre qu'une erreur "située" à l'intérieur du
code peut néanmoins se trouver avant le "niveau VBA" ! Pour moi, le code est
déjà du VBA !
A bientôt,
JPBonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une erreur
avant le "niveau" VBA, il exprime son mécontentement. (c'est du moins comme
cela que je me l'explique).
Cordialement.
DanielBonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir Daniel,
Merci pour cette précision concernant la limite de "On Error Resume ...".
Ca me fait un peu drôle d'entendre qu'une erreur "située" à l'intérieur du
code peut néanmoins se trouver avant le "niveau VBA" ! Pour moi, le code est
déjà du VBA !
A bientôt,
JP
Bonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une erreur
avant le "niveau" VBA, il exprime son mécontentement. (c'est du moins comme
cela que je me l'explique).
Cordialement.
Daniel
Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonsoir Daniel,
Merci pour cette précision concernant la limite de "On Error Resume ...".
Ca me fait un peu drôle d'entendre qu'une erreur "située" à l'intérieur du
code peut néanmoins se trouver avant le "niveau VBA" ! Pour moi, le code est
déjà du VBA !
A bientôt,
JPBonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une erreur
avant le "niveau" VBA, il exprime son mécontentement. (c'est du moins comme
cela que je me l'explique).
Cordialement.
DanielBonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un "On
Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Comme je le conçois, les contrôles sont des objets situés dans une
"bibliothèque" séparée du VBA "standard". De même, l'instruction :
"Application.DisplayAlerts" ne prévient pas tous l'affichage de tous les
messages.
Pour te donner un exemple plus concret, la commande "PrintOut", commande VBA,
fait appel à différents niveaux d'interface entre le code, le système et
l'imprimante (recherche si cela t'intéresse, l'organisation de l'architecture
de Windows).
DanielBonsoir Daniel,
Merci pour cette précision concernant la limite de "On Error Resume ...".
Ca me fait un peu drôle d'entendre qu'une erreur "située" à l'intérieur du
code peut néanmoins se trouver avant le "niveau VBA" ! Pour moi, le code
est déjà du VBA !
A bientôt,
JPBonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une
erreur avant le "niveau" VBA, il exprime son mécontentement. (c'est du
moins comme cela que je me l'explique).
Cordialement.
DanielBonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un
"On Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Comme je le conçois, les contrôles sont des objets situés dans une
"bibliothèque" séparée du VBA "standard". De même, l'instruction :
"Application.DisplayAlerts" ne prévient pas tous l'affichage de tous les
messages.
Pour te donner un exemple plus concret, la commande "PrintOut", commande VBA,
fait appel à différents niveaux d'interface entre le code, le système et
l'imprimante (recherche si cela t'intéresse, l'organisation de l'architecture
de Windows).
Daniel
Bonsoir Daniel,
Merci pour cette précision concernant la limite de "On Error Resume ...".
Ca me fait un peu drôle d'entendre qu'une erreur "située" à l'intérieur du
code peut néanmoins se trouver avant le "niveau VBA" ! Pour moi, le code
est déjà du VBA !
A bientôt,
JP
Bonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une
erreur avant le "niveau" VBA, il exprime son mécontentement. (c'est du
moins comme cela que je me l'explique).
Cordialement.
Daniel
Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un
"On Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Comme je le conçois, les contrôles sont des objets situés dans une
"bibliothèque" séparée du VBA "standard". De même, l'instruction :
"Application.DisplayAlerts" ne prévient pas tous l'affichage de tous les
messages.
Pour te donner un exemple plus concret, la commande "PrintOut", commande VBA,
fait appel à différents niveaux d'interface entre le code, le système et
l'imprimante (recherche si cela t'intéresse, l'organisation de l'architecture
de Windows).
DanielBonsoir Daniel,
Merci pour cette précision concernant la limite de "On Error Resume ...".
Ca me fait un peu drôle d'entendre qu'une erreur "située" à l'intérieur du
code peut néanmoins se trouver avant le "niveau VBA" ! Pour moi, le code
est déjà du VBA !
A bientôt,
JPBonsoir.
"On error" ne gère pas toutes les erreurs. Si le système détecte une
erreur avant le "niveau" VBA, il exprime son mécontentement. (c'est du
moins comme cela que je me l'explique).
Cordialement.
DanielBonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un
"On Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonjour,
En sus, tu peux reboucler sur ton erreur aussi, à mon sens, sauter une
erreur possible en force n'est pas normal dans l'absolu. S'il y a erreur, on
doit réparer pour qu'elle ne soit plus la, et surtout la gérer, si toujours
si possible, une erreur par procédure c'est plus simple, car sinon, tu peux
te retrouver avec une erreur comme dit ici, qui vient d'ailleurs et qui est
répercuté plus bas dans la même procédure, exemple
sub saisie()
dim x as double
dim r as string
debut:
r = inputBox("saisir la valeur")
r = trim(r)
if len(r) < 1 then exit sub ' r = "bonjour'
on error resume goto erreur
x = cDble(d) ' ERREUR
'... suite
exit sub
erreur:
if err = ErreurPrévue then
msgbox "Erreur : mettre des chiffres",vbexclamation
on error resume next
goto debut
endif
if err <> 0 then ' erreur <> 0 + <> prévue ?
msgBox err & "... contexte... voir objet err..." & vblf & "signaler_
"procedure = saisie, adresse = erreur, form n°1, programme Y",
vb exclamation
on error resume next
endif
end sub
Dans cet exemple, une gestion d'erreur et une erreur possible par
procédure, c'est clair, on teste l'erreur, on la soigne, on dit
pourquoi, et on reboucle s'il y a lieu (ou Call de la fonction,
récursivité),
et ensuite, on teste si erreur imprévue, on fait en sorte de terminer sans
que le programme plante, et on informe pour la localisation du bug,
on gagnera du temps ensuite en sachant où aller...
Mais le mieux est sans doute d'éviter qu'il y ait des erreurs, en faisant en
sorte
que l'utilisateur ne puisse pas en produire, dans ce cas, il faut l'obliger
à
saisir des chiffres seulement et un seul point, et tu n'auras plus de risque
d'erreur...
Parfois des développeur ne s'ennuient pas, avec une date saisie, il la
balance dans
une variable date, s'il n'y a pas d'erreur c'est bon, s'il y a erreur c'est
mauvais, on
renvoie. Normalement l'erreur ne doit pas servir d'élément de gestion si le
programme, et principalement la saisie, est bien traitée, car sinon, il peut
survenir
une vraie erreur impréue, qui va être inhibé alors qu'elle devrait être
traitée...
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"j-pascal" a écrit dans le message de news:Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un
"On Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonjour,
En sus, tu peux reboucler sur ton erreur aussi, à mon sens, sauter une
erreur possible en force n'est pas normal dans l'absolu. S'il y a erreur, on
doit réparer pour qu'elle ne soit plus la, et surtout la gérer, si toujours
si possible, une erreur par procédure c'est plus simple, car sinon, tu peux
te retrouver avec une erreur comme dit ici, qui vient d'ailleurs et qui est
répercuté plus bas dans la même procédure, exemple
sub saisie()
dim x as double
dim r as string
debut:
r = inputBox("saisir la valeur")
r = trim(r)
if len(r) < 1 then exit sub ' r = "bonjour'
on error resume goto erreur
x = cDble(d) ' ERREUR
'... suite
exit sub
erreur:
if err = ErreurPrévue then
msgbox "Erreur : mettre des chiffres",vbexclamation
on error resume next
goto debut
endif
if err <> 0 then ' erreur <> 0 + <> prévue ?
msgBox err & "... contexte... voir objet err..." & vblf & "signaler_
"procedure = saisie, adresse = erreur, form n°1, programme Y",
vb exclamation
on error resume next
endif
end sub
Dans cet exemple, une gestion d'erreur et une erreur possible par
procédure, c'est clair, on teste l'erreur, on la soigne, on dit
pourquoi, et on reboucle s'il y a lieu (ou Call de la fonction,
récursivité),
et ensuite, on teste si erreur imprévue, on fait en sorte de terminer sans
que le programme plante, et on informe pour la localisation du bug,
on gagnera du temps ensuite en sachant où aller...
Mais le mieux est sans doute d'éviter qu'il y ait des erreurs, en faisant en
sorte
que l'utilisateur ne puisse pas en produire, dans ce cas, il faut l'obliger
à
saisir des chiffres seulement et un seul point, et tu n'auras plus de risque
d'erreur...
Parfois des développeur ne s'ennuient pas, avec une date saisie, il la
balance dans
une variable date, s'il n'y a pas d'erreur c'est bon, s'il y a erreur c'est
mauvais, on
renvoie. Normalement l'erreur ne doit pas servir d'élément de gestion si le
programme, et principalement la saisie, est bien traitée, car sinon, il peut
survenir
une vraie erreur impréue, qui va être inhibé alors qu'elle devrait être
traitée...
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"j-pascal" <messages@venir.com> a écrit dans le message de news:
mn.a54f7d8b81c6c795.81386@venir.com...
Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un
"On Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP
Bonjour,
En sus, tu peux reboucler sur ton erreur aussi, à mon sens, sauter une
erreur possible en force n'est pas normal dans l'absolu. S'il y a erreur, on
doit réparer pour qu'elle ne soit plus la, et surtout la gérer, si toujours
si possible, une erreur par procédure c'est plus simple, car sinon, tu peux
te retrouver avec une erreur comme dit ici, qui vient d'ailleurs et qui est
répercuté plus bas dans la même procédure, exemple
sub saisie()
dim x as double
dim r as string
debut:
r = inputBox("saisir la valeur")
r = trim(r)
if len(r) < 1 then exit sub ' r = "bonjour'
on error resume goto erreur
x = cDble(d) ' ERREUR
'... suite
exit sub
erreur:
if err = ErreurPrévue then
msgbox "Erreur : mettre des chiffres",vbexclamation
on error resume next
goto debut
endif
if err <> 0 then ' erreur <> 0 + <> prévue ?
msgBox err & "... contexte... voir objet err..." & vblf & "signaler_
"procedure = saisie, adresse = erreur, form n°1, programme Y",
vb exclamation
on error resume next
endif
end sub
Dans cet exemple, une gestion d'erreur et une erreur possible par
procédure, c'est clair, on teste l'erreur, on la soigne, on dit
pourquoi, et on reboucle s'il y a lieu (ou Call de la fonction,
récursivité),
et ensuite, on teste si erreur imprévue, on fait en sorte de terminer sans
que le programme plante, et on informe pour la localisation du bug,
on gagnera du temps ensuite en sachant où aller...
Mais le mieux est sans doute d'éviter qu'il y ait des erreurs, en faisant en
sorte
que l'utilisateur ne puisse pas en produire, dans ce cas, il faut l'obliger
à
saisir des chiffres seulement et un seul point, et tu n'auras plus de risque
d'erreur...
Parfois des développeur ne s'ennuient pas, avec une date saisie, il la
balance dans
une variable date, s'il n'y a pas d'erreur c'est bon, s'il y a erreur c'est
mauvais, on
renvoie. Normalement l'erreur ne doit pas servir d'élément de gestion si le
programme, et principalement la saisie, est bien traitée, car sinon, il peut
survenir
une vraie erreur impréue, qui va être inhibé alors qu'elle devrait être
traitée...
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"j-pascal" a écrit dans le message de news:Bonsoir,
Si le contrôle "Me.Calendar1" de la boîte à outils n'existe pas dans un
classeur qui serait ouvert sur un PC lambda, pourquoi l'insertion d'un
"On Error Resume Next" ne fonctionne pas pour gérer l'erreur ?
'-----
Private Sub UserForm_Initialize()
On Error Resume Next
Me.Calendar1 = Date
End Sub
'-----
Merci pour vos lumières.
JP