Bonjour à tou(te)s,
Je patauge dans un problème de gestion d'erreur....En gros, je cherche
à faire ceci :
Debut et Fin sont dimensionnés en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute à l'étiquette Erreur, qui renvoie au départ
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute à l'étiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des données --
et je continue le traitement sinon je vais à Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 à Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
débogage. Pourquoi ????
- si je fais entrée pour la variable Fin, je ne vais pas à Suite, mais
en débogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne âme pouvait me
lancer une bouée........
Merci d'avance
ThierryP
Bonjour à tou(te)s,
Je patauge dans un problème de gestion d'erreur....En gros, je cherche
à faire ceci :
Debut et Fin sont dimensionnés en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute à l'étiquette Erreur, qui renvoie au départ
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute à l'étiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des données --
et je continue le traitement sinon je vais à Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 à Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
débogage. Pourquoi ????
- si je fais entrée pour la variable Fin, je ne vais pas à Suite, mais
en débogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne âme pouvait me
lancer une bouée........
Merci d'avance
ThierryP
Bonjour à tou(te)s,
Je patauge dans un problème de gestion d'erreur....En gros, je cherche
à faire ceci :
Debut et Fin sont dimensionnés en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute à l'étiquette Erreur, qui renvoie au départ
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute à l'étiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des données --
et je continue le traitement sinon je vais à Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 à Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
débogage. Pourquoi ????
- si je fais entrée pour la variable Fin, je ne vais pas à Suite, mais
en débogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne âme pouvait me
lancer une bouée........
Merci d'avance
ThierryP
Debut et Fin sont dimensionnés en Date
Debut et Fin sont dimensionnés en Date
Debut et Fin sont dimensionnés en Date
Bonjour,
ThierryP a crit :
> Bonjour tou(te)s,
> Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
> faire ceci :
> Debut et Fin sont dimensionn s en Date
> Private Sub Periode_Click()
> Recommence:
> Debut = 0: Fin = 0
> On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
> ex) je saute l' tiquette Erreur, qui renvoie au d part
> Debut = Application.InputBox("Date of Beginning (dd/mm/
> yyyy)", , , , , , , 2)
> On Error GoTo 0 ------------> je croyais invalider le gestionnaire
> d'erreur .......
> If Debut = 0 Then Periode = False: Exit Sub
> On Error GoTo suite ------------> Si la 2eme date est invalide je
> saute l' tiquette Suite
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
> "Click OK for same day", , , , , , , 2)
> On Error GoTo 0
> suite:
> If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variab le
> Fin est vide, j' affecte la valeur de Debut (jour unique)
> --Traitement des donn es --
> et je continue le traitement sinon je vais Erreur
> Debut = 0: Fin = 0
> Exit Sub
> Erreur:
> MsgBox "Typing mistake": GoTo Recommence
> End Sub
> J'ai plusieurs soucis :
> - si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
> gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
> d bogage. Pourquoi ????
> - si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
> en d bogage. Cela fonctionnait avant que je mette le premier
> gestionnaire d'erreur sur Debut.
> A force de patauger, je vais me noyer !! Si une bonne me pouvait me
> lancer une bou e........
> Merci d'avance
> ThierryP
Il y a diff rente mani re d'aborder ce probl me, voici ma vision de la ch ose :
Private Sub Periode_Click()
Dim DateTmp As String
Do
DateTmp = InputBox("Date of Beginning (dd/mm/yyyy")
Loop Until IsDate(DateTmp)
Debut = CDate(DateTmp)
DateTmp = ""
Do
DateTmp = InputBox("Date of End (dd/mm/yyyy" & _
VbCrLf & "Click OK for same day")
If Len(Trim(DateTmp=)) = 0 Then Exit Do
Loop Until IsDate(DateTmp)
If Len(Trim(DateTmp=))=0 Then
Fin = Debut
Else
Fin = CDate(DateFin)
End If
End Sub
Bonjour,
ThierryP a crit :
> Bonjour tou(te)s,
> Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
> faire ceci :
> Debut et Fin sont dimensionn s en Date
> Private Sub Periode_Click()
> Recommence:
> Debut = 0: Fin = 0
> On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
> ex) je saute l' tiquette Erreur, qui renvoie au d part
> Debut = Application.InputBox("Date of Beginning (dd/mm/
> yyyy)", , , , , , , 2)
> On Error GoTo 0 ------------> je croyais invalider le gestionnaire
> d'erreur .......
> If Debut = 0 Then Periode = False: Exit Sub
> On Error GoTo suite ------------> Si la 2eme date est invalide je
> saute l' tiquette Suite
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
> "Click OK for same day", , , , , , , 2)
> On Error GoTo 0
> suite:
> If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variab le
> Fin est vide, j' affecte la valeur de Debut (jour unique)
> --Traitement des donn es --
> et je continue le traitement sinon je vais Erreur
> Debut = 0: Fin = 0
> Exit Sub
> Erreur:
> MsgBox "Typing mistake": GoTo Recommence
> End Sub
> J'ai plusieurs soucis :
> - si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
> gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
> d bogage. Pourquoi ????
> - si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
> en d bogage. Cela fonctionnait avant que je mette le premier
> gestionnaire d'erreur sur Debut.
> A force de patauger, je vais me noyer !! Si une bonne me pouvait me
> lancer une bou e........
> Merci d'avance
> ThierryP
Il y a diff rente mani re d'aborder ce probl me, voici ma vision de la ch ose :
Private Sub Periode_Click()
Dim DateTmp As String
Do
DateTmp = InputBox("Date of Beginning (dd/mm/yyyy")
Loop Until IsDate(DateTmp)
Debut = CDate(DateTmp)
DateTmp = ""
Do
DateTmp = InputBox("Date of End (dd/mm/yyyy" & _
VbCrLf & "Click OK for same day")
If Len(Trim(DateTmp=)) = 0 Then Exit Do
Loop Until IsDate(DateTmp)
If Len(Trim(DateTmp=))=0 Then
Fin = Debut
Else
Fin = CDate(DateFin)
End If
End Sub
Bonjour,
ThierryP a crit :
> Bonjour tou(te)s,
> Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
> faire ceci :
> Debut et Fin sont dimensionn s en Date
> Private Sub Periode_Click()
> Recommence:
> Debut = 0: Fin = 0
> On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
> ex) je saute l' tiquette Erreur, qui renvoie au d part
> Debut = Application.InputBox("Date of Beginning (dd/mm/
> yyyy)", , , , , , , 2)
> On Error GoTo 0 ------------> je croyais invalider le gestionnaire
> d'erreur .......
> If Debut = 0 Then Periode = False: Exit Sub
> On Error GoTo suite ------------> Si la 2eme date est invalide je
> saute l' tiquette Suite
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
> "Click OK for same day", , , , , , , 2)
> On Error GoTo 0
> suite:
> If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variab le
> Fin est vide, j' affecte la valeur de Debut (jour unique)
> --Traitement des donn es --
> et je continue le traitement sinon je vais Erreur
> Debut = 0: Fin = 0
> Exit Sub
> Erreur:
> MsgBox "Typing mistake": GoTo Recommence
> End Sub
> J'ai plusieurs soucis :
> - si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
> gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
> d bogage. Pourquoi ????
> - si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
> en d bogage. Cela fonctionnait avant que je mette le premier
> gestionnaire d'erreur sur Debut.
> A force de patauger, je vais me noyer !! Si une bonne me pouvait me
> lancer une bou e........
> Merci d'avance
> ThierryP
Il y a diff rente mani re d'aborder ce probl me, voici ma vision de la ch ose :
Private Sub Periode_Click()
Dim DateTmp As String
Do
DateTmp = InputBox("Date of Beginning (dd/mm/yyyy")
Loop Until IsDate(DateTmp)
Debut = CDate(DateTmp)
DateTmp = ""
Do
DateTmp = InputBox("Date of End (dd/mm/yyyy" & _
VbCrLf & "Click OK for same day")
If Len(Trim(DateTmp=)) = 0 Then Exit Do
Loop Until IsDate(DateTmp)
If Len(Trim(DateTmp=))=0 Then
Fin = Debut
Else
Fin = CDate(DateFin)
End If
End Sub
Bonjour ThierryP,
M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As Boolean
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D bu t"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
End Sub
Michel (le seul qui s'accroche)
"ThierryP" a crit dans le message denews:e3
Bonjour tou(te)s,
Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........
Merci d'avance
ThierryP
Bonjour ThierryP,
M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As Boolean
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D bu t"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
End Sub
Michel (le seul qui s'accroche)
"ThierryP" <petithory.thie...@gmail.com> a crit dans le message denews:e3 4f1b15-c8c8-4e41-8e06-49d3ef7c6b58@r19g2000prm.googlegroups.com...
Bonjour tou(te)s,
Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........
Merci d'avance
ThierryP
Bonjour ThierryP,
M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As Boolean
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D bu t"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
End Sub
Michel (le seul qui s'accroche)
"ThierryP" a crit dans le message denews:e3
Bonjour tou(te)s,
Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........
Merci d'avance
ThierryP
Bonjour ThierryP,
M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As Boolean
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
End Sub
Michel (le seul qui s'accroche)
"ThierryP" a crit dans le message
denews:
Bonjour tou(te)s,
Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........
Merci d'avance
ThierryP
Bonjour ThierryP,
M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As Boolean
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
End Sub
Michel (le seul qui s'accroche)
"ThierryP" <petithory.thie...@gmail.com> a crit dans le message
denews:e34f1b15-c8c8-4e41-8e06-49d3ef7c6b58@r19g2000prm.googlegroups.com...
Bonjour tou(te)s,
Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........
Merci d'avance
ThierryP
Bonjour ThierryP,
M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As Boolean
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
End Sub
Michel (le seul qui s'accroche)
"ThierryP" a crit dans le message
denews:
Bonjour tou(te)s,
Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........
Merci d'avance
ThierryP
Est-ce que cet exemple peut t'aider y voir un peu plus clair ?
Sub P riodeAvecGestionErreur()
Dim D but As String, Fin As String
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
GoTo Erreur_1
Case Is = ""
GoTo Erreur_2
End Select
If Not IsDate(D but) Then
GoTo Erreur_3
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
GoTo Erreur_4
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D bu t"
GoTo RecommenceFin
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
Exit Sub
'>>>>>>>>>>> tiquettes d'Erreur <<<<<<<<<<<<<<<<<<<<<
Erreur_1:
MsgBox "Vous avez cliqu sur Annuler" & vbNewLine & _
"=> On sort de la Proc dure"
Exit Sub
Erreur_2:
MsgBox "Vous N'avez PAS saisi de Date" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_3:
MsgBox "Il faut saisir une date VALIDE" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_4:
MsgBox "Vous avez annul la saisie" & vbNewLine & _
"=> On sort de la partie Fin de la Proc dure" & vbNewLi ne & _
"mais la partie D but est conserv e" & vbNewLine & _
"=> On relance la possibilit de saisie Fin"
GoTo RecommenceFin
End Sub
Michel
"ThierryP" a crit dans le message denews:0f
Non, non tu n'es pas le seul t'accrocher !! Moins de monde qu'au bon
vieux temps,
mais on retrouve quand m me des anciens :-))))))
Je vais faire un mix de ta solution et de celle de Michel__D et a va
le faire !
N anmoins, il y des trucs que je ne comprends pas dans les
gestionnaires d'erreur :-(
Merci !
ThierryP
On 27 mar, 14:29, P hemme wrote:
> Bonjour ThierryP,
> M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
> Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
> sachant que ce qui sort d'une inputbox en type 2 est du string.
> Je te propose donc le jeu de contr le suivant :
> Sub P riode()
> Dim D but As String, Fin As String
> 'Dim P riode As Boolean
> Recommence:
> '>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
> D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
> , 2)
> Select Case D but
> Case Is = False
> MsgBox "Vous avez annul la saisie"
> Exit Sub
> Case Is = ""
> MsgBox "Il faut saisir une date"
> Exit Sub
> End Select
> If Not IsDate(D but) Then
> MsgBox "Il faut saisir une date valide"
> GoTo Recommence
> End If
> '>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
> RecommenceFin:
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
> "Click OK for same day", , , , , , , 2)
> Select Case Fin
> Case Is = False
> MsgBox "Vous avez annul la saisie"
> GoTo RecommenceFin
> Case Is = ""
> Fin = D but
> End Select
> If Not IsDate(Fin) Or Fin < D but Then
> MsgBox "Il faut saisir une date valide" & vbNewLine & _
> "Ou :" & vbNewLine & _
> "La date de Fin doit tre post rieure OU gale D but"
> GoTo RecommenceFin 'Exit Sub
> End If
> '>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
> With Sheets(1)
> .Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
> .Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
> End With
> End Sub
> Michel (le seul qui s'accroche)
> "ThierryP" a crit dans le message
> denews: m...
> Bonjour tou(te)s,
> Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
> faire ceci :
> Debut et Fin sont dimensionn s en Date
> Private Sub Periode_Click()
> Recommence:
> Debut = 0: Fin = 0
> On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
> ex) je saute l' tiquette Erreur, qui renvoie au d part
> Debut = Application.InputBox("Date of Beginning (dd/mm/
> yyyy)", , , , , , , 2)
> On Error GoTo 0 ------------> je croyais invalider le gestionnaire
> d'erreur .......
> If Debut = 0 Then Periode = False: Exit Sub
> On Error GoTo suite ------------> Si la 2eme date est invalide je
> saute l' tiquette Suite
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
> "Click OK for same day", , , , , , , 2)
> On Error GoTo 0
> suite:
> If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variab le
> Fin est vide, j' affecte la valeur de Debut (jour unique)
> --Traitement des donn es --
> et je continue le traitement sinon je vais Erreur
> Debut = 0: Fin = 0
> Exit Sub
> Erreur:
> MsgBox "Typing mistake": GoTo Recommence
> End Sub
> J'ai plusieurs soucis :
> - si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
> gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
> d bogage. Pourquoi ????
> - si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
> en d bogage. Cela fonctionnait avant que je mette le premier
> gestionnaire d'erreur sur Debut.
> A force de patauger, je vais me noyer !! Si une bonne me pouvait me
> lancer une bou e........
> Merci d'avance
> ThierryP
Est-ce que cet exemple peut t'aider y voir un peu plus clair ?
Sub P riodeAvecGestionErreur()
Dim D but As String, Fin As String
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
GoTo Erreur_1
Case Is = ""
GoTo Erreur_2
End Select
If Not IsDate(D but) Then
GoTo Erreur_3
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
GoTo Erreur_4
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D bu t"
GoTo RecommenceFin
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
Exit Sub
'>>>>>>>>>>> tiquettes d'Erreur <<<<<<<<<<<<<<<<<<<<<
Erreur_1:
MsgBox "Vous avez cliqu sur Annuler" & vbNewLine & _
"=> On sort de la Proc dure"
Exit Sub
Erreur_2:
MsgBox "Vous N'avez PAS saisi de Date" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_3:
MsgBox "Il faut saisir une date VALIDE" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_4:
MsgBox "Vous avez annul la saisie" & vbNewLine & _
"=> On sort de la partie Fin de la Proc dure" & vbNewLi ne & _
"mais la partie D but est conserv e" & vbNewLine & _
"=> On relance la possibilit de saisie Fin"
GoTo RecommenceFin
End Sub
Michel
"ThierryP" <petithory.thie...@gmail.com> a crit dans le message denews:0f edc38b-3196-42aa-8627-b91acf66a2c3@34g2000pru.googlegroups.com...
Non, non tu n'es pas le seul t'accrocher !! Moins de monde qu'au bon
vieux temps,
mais on retrouve quand m me des anciens :-))))))
Je vais faire un mix de ta solution et de celle de Michel__D et a va
le faire !
N anmoins, il y des trucs que je ne comprends pas dans les
gestionnaires d'erreur :-(
Merci !
ThierryP
On 27 mar, 14:29, P hemme <x...@xx.xx> wrote:
> Bonjour ThierryP,
> M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
> Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
> sachant que ce qui sort d'une inputbox en type 2 est du string.
> Je te propose donc le jeu de contr le suivant :
> Sub P riode()
> Dim D but As String, Fin As String
> 'Dim P riode As Boolean
> Recommence:
> '>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
> D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
> , 2)
> Select Case D but
> Case Is = False
> MsgBox "Vous avez annul la saisie"
> Exit Sub
> Case Is = ""
> MsgBox "Il faut saisir une date"
> Exit Sub
> End Select
> If Not IsDate(D but) Then
> MsgBox "Il faut saisir une date valide"
> GoTo Recommence
> End If
> '>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
> RecommenceFin:
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
> "Click OK for same day", , , , , , , 2)
> Select Case Fin
> Case Is = False
> MsgBox "Vous avez annul la saisie"
> GoTo RecommenceFin
> Case Is = ""
> Fin = D but
> End Select
> If Not IsDate(Fin) Or Fin < D but Then
> MsgBox "Il faut saisir une date valide" & vbNewLine & _
> "Ou :" & vbNewLine & _
> "La date de Fin doit tre post rieure OU gale D but"
> GoTo RecommenceFin 'Exit Sub
> End If
> '>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
> With Sheets(1)
> .Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
> .Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
> End With
> End Sub
> Michel (le seul qui s'accroche)
> "ThierryP" <petithory.thie...@gmail.com> a crit dans le message
> denews:e34f1b15-c8c8-4e41-8e06-49d3ef7c6b58@r19g2000prm.googlegroups.co m...
> Bonjour tou(te)s,
> Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
> faire ceci :
> Debut et Fin sont dimensionn s en Date
> Private Sub Periode_Click()
> Recommence:
> Debut = 0: Fin = 0
> On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
> ex) je saute l' tiquette Erreur, qui renvoie au d part
> Debut = Application.InputBox("Date of Beginning (dd/mm/
> yyyy)", , , , , , , 2)
> On Error GoTo 0 ------------> je croyais invalider le gestionnaire
> d'erreur .......
> If Debut = 0 Then Periode = False: Exit Sub
> On Error GoTo suite ------------> Si la 2eme date est invalide je
> saute l' tiquette Suite
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
> "Click OK for same day", , , , , , , 2)
> On Error GoTo 0
> suite:
> If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variab le
> Fin est vide, j' affecte la valeur de Debut (jour unique)
> --Traitement des donn es --
> et je continue le traitement sinon je vais Erreur
> Debut = 0: Fin = 0
> Exit Sub
> Erreur:
> MsgBox "Typing mistake": GoTo Recommence
> End Sub
> J'ai plusieurs soucis :
> - si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
> gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
> d bogage. Pourquoi ????
> - si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
> en d bogage. Cela fonctionnait avant que je mette le premier
> gestionnaire d'erreur sur Debut.
> A force de patauger, je vais me noyer !! Si une bonne me pouvait me
> lancer une bou e........
> Merci d'avance
> ThierryP
Est-ce que cet exemple peut t'aider y voir un peu plus clair ?
Sub P riodeAvecGestionErreur()
Dim D but As String, Fin As String
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
GoTo Erreur_1
Case Is = ""
GoTo Erreur_2
End Select
If Not IsDate(D but) Then
GoTo Erreur_3
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
GoTo Erreur_4
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D bu t"
GoTo RecommenceFin
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
Exit Sub
'>>>>>>>>>>> tiquettes d'Erreur <<<<<<<<<<<<<<<<<<<<<
Erreur_1:
MsgBox "Vous avez cliqu sur Annuler" & vbNewLine & _
"=> On sort de la Proc dure"
Exit Sub
Erreur_2:
MsgBox "Vous N'avez PAS saisi de Date" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_3:
MsgBox "Il faut saisir une date VALIDE" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_4:
MsgBox "Vous avez annul la saisie" & vbNewLine & _
"=> On sort de la partie Fin de la Proc dure" & vbNewLi ne & _
"mais la partie D but est conserv e" & vbNewLine & _
"=> On relance la possibilit de saisie Fin"
GoTo RecommenceFin
End Sub
Michel
"ThierryP" a crit dans le message denews:0f
Non, non tu n'es pas le seul t'accrocher !! Moins de monde qu'au bon
vieux temps,
mais on retrouve quand m me des anciens :-))))))
Je vais faire un mix de ta solution et de celle de Michel__D et a va
le faire !
N anmoins, il y des trucs que je ne comprends pas dans les
gestionnaires d'erreur :-(
Merci !
ThierryP
On 27 mar, 14:29, P hemme wrote:
> Bonjour ThierryP,
> M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
> Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
> sachant que ce qui sort d'une inputbox en type 2 est du string.
> Je te propose donc le jeu de contr le suivant :
> Sub P riode()
> Dim D but As String, Fin As String
> 'Dim P riode As Boolean
> Recommence:
> '>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
> D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
> , 2)
> Select Case D but
> Case Is = False
> MsgBox "Vous avez annul la saisie"
> Exit Sub
> Case Is = ""
> MsgBox "Il faut saisir une date"
> Exit Sub
> End Select
> If Not IsDate(D but) Then
> MsgBox "Il faut saisir une date valide"
> GoTo Recommence
> End If
> '>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
> RecommenceFin:
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
> "Click OK for same day", , , , , , , 2)
> Select Case Fin
> Case Is = False
> MsgBox "Vous avez annul la saisie"
> GoTo RecommenceFin
> Case Is = ""
> Fin = D but
> End Select
> If Not IsDate(Fin) Or Fin < D but Then
> MsgBox "Il faut saisir une date valide" & vbNewLine & _
> "Ou :" & vbNewLine & _
> "La date de Fin doit tre post rieure OU gale D but"
> GoTo RecommenceFin 'Exit Sub
> End If
> '>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
> With Sheets(1)
> .Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
> .Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
> End With
> End Sub
> Michel (le seul qui s'accroche)
> "ThierryP" a crit dans le message
> denews: m...
> Bonjour tou(te)s,
> Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
> faire ceci :
> Debut et Fin sont dimensionn s en Date
> Private Sub Periode_Click()
> Recommence:
> Debut = 0: Fin = 0
> On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
> ex) je saute l' tiquette Erreur, qui renvoie au d part
> Debut = Application.InputBox("Date of Beginning (dd/mm/
> yyyy)", , , , , , , 2)
> On Error GoTo 0 ------------> je croyais invalider le gestionnaire
> d'erreur .......
> If Debut = 0 Then Periode = False: Exit Sub
> On Error GoTo suite ------------> Si la 2eme date est invalide je
> saute l' tiquette Suite
> Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
> "Click OK for same day", , , , , , , 2)
> On Error GoTo 0
> suite:
> If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variab le
> Fin est vide, j' affecte la valeur de Debut (jour unique)
> --Traitement des donn es --
> et je continue le traitement sinon je vais Erreur
> Debut = 0: Fin = 0
> Exit Sub
> Erreur:
> MsgBox "Typing mistake": GoTo Recommence
> End Sub
> J'ai plusieurs soucis :
> - si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
> gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
> d bogage. Pourquoi ????
> - si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
> en d bogage. Cela fonctionnait avant que je mette le premier
> gestionnaire d'erreur sur Debut.
> A force de patauger, je vais me noyer !! Si une bonne me pouvait me
> lancer une bou e........
> Merci d'avance
> ThierryP
Merci pour le cours ;-))))))
En fait, ceci ne me pose pas de problème. Je voulais parler de "On
error goto xxx".
Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
dans une proc avec "on error goto 0" et en créer un autre dans
la même proc avec "on error goto yyy", etc... Mais apparemment non, en
tous cas pas sur mon PC !!!
L'essentiel est d'avoir une solution fonctionnelle !
Merci
Merci pour le cours ;-))))))
En fait, ceci ne me pose pas de problème. Je voulais parler de "On
error goto xxx".
Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
dans une proc avec "on error goto 0" et en créer un autre dans
la même proc avec "on error goto yyy", etc... Mais apparemment non, en
tous cas pas sur mon PC !!!
L'essentiel est d'avoir une solution fonctionnelle !
Merci
Merci pour le cours ;-))))))
En fait, ceci ne me pose pas de problème. Je voulais parler de "On
error goto xxx".
Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
dans une proc avec "on error goto 0" et en créer un autre dans
la même proc avec "on error goto yyy", etc... Mais apparemment non, en
tous cas pas sur mon PC !!!
L'essentiel est d'avoir une solution fonctionnelle !
Merci
bonjour Thierry,
tu pourrais utiliser
Err.Clear
isabelle
------------------------------------------------------------------
Le 2011-03-27 10:48, ThierryP a écrit :
> Merci pour le cours ;-))))))
> En fait, ceci ne me pose pas de problème. Je voulais parler de "On
> error goto xxx".
> Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
> dans une proc avec "on error goto 0" et en créer un autre dans
> la même proc avec "on error goto yyy", etc... Mais apparemment non, e n
> tous cas pas sur mon PC !!!
> L'essentiel est d'avoir une solution fonctionnelle !
> Merci
bonjour Thierry,
tu pourrais utiliser
Err.Clear
isabelle
------------------------------------------------------------------
Le 2011-03-27 10:48, ThierryP a écrit :
> Merci pour le cours ;-))))))
> En fait, ceci ne me pose pas de problème. Je voulais parler de "On
> error goto xxx".
> Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
> dans une proc avec "on error goto 0" et en créer un autre dans
> la même proc avec "on error goto yyy", etc... Mais apparemment non, e n
> tous cas pas sur mon PC !!!
> L'essentiel est d'avoir une solution fonctionnelle !
> Merci
bonjour Thierry,
tu pourrais utiliser
Err.Clear
isabelle
------------------------------------------------------------------
Le 2011-03-27 10:48, ThierryP a écrit :
> Merci pour le cours ;-))))))
> En fait, ceci ne me pose pas de problème. Je voulais parler de "On
> error goto xxx".
> Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
> dans une proc avec "on error goto 0" et en créer un autre dans
> la même proc avec "on error goto yyy", etc... Mais apparemment non, e n
> tous cas pas sur mon PC !!!
> L'essentiel est d'avoir une solution fonctionnelle !
> Merci
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
Merci pour le cours ;-))))))
En fait, ceci ne me pose pas de problème. Je voulais parler de "On
error goto xxx".
Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
dans une proc avec "on error goto 0" et en créer un autre dans
la même proc avec "on error goto yyy", etc... Mais apparemment non, en
tous cas pas sur mon PC !!!
L'essentiel est d'avoir une solution fonctionnelle !
Merci
On 27 mar, 17:31, Péhemme wrote:Est-ce que cet exemple peut t'aider y voir un peu plus clair ?
Sub P riodeAvecGestionErreur()
Dim D but As String, Fin As String
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
GoTo Erreur_1
Case Is = ""
GoTo Erreur_2
End Select
If Not IsDate(D but) Then
GoTo Erreur_3
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
GoTo Erreur_4
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
Exit Sub
'>>>>>>>>>>> tiquettes d'Erreur <<<<<<<<<<<<<<<<<<<<<
Erreur_1:
MsgBox "Vous avez cliqu sur Annuler" & vbNewLine & _
"=> On sort de la Proc dure"
Exit Sub
Erreur_2:
MsgBox "Vous N'avez PAS saisi de Date" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_3:
MsgBox "Il faut saisir une date VALIDE" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_4:
MsgBox "Vous avez annul la saisie" & vbNewLine & _
"=> On sort de la partie Fin de la Proc dure" & vbNewLine & _
"mais la partie D but est conserv e" & vbNewLine & _
"=> On relance la possibilit de saisie Fin"
GoTo RecommenceFin
End Sub
Michel
"ThierryP" a crit dans le message
denews:
Non, non tu n'es pas le seul t'accrocher !! Moins de monde qu'au bon vieux
temps, mais on retrouve quand m me des anciens :-))))))
Je vais faire un mix de ta solution et de celle de Michel__D et a va
le faire !
N anmoins, il y des trucs que je ne comprends pas dans les
gestionnaires d'erreur :-(
Merci !
ThierryP
On 27 mar, 14:29, P hemme wrote:Bonjour ThierryP,M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As BooleanRecommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End WithEnd SubMichel (le seul qui s'accroche)"ThierryP" a crit dans le message
denews:
Bonjour tou(te)s,Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End SubJ'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........Merci d'avanceThierryP
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
Merci pour le cours ;-))))))
En fait, ceci ne me pose pas de problème. Je voulais parler de "On
error goto xxx".
Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
dans une proc avec "on error goto 0" et en créer un autre dans
la même proc avec "on error goto yyy", etc... Mais apparemment non, en
tous cas pas sur mon PC !!!
L'essentiel est d'avoir une solution fonctionnelle !
Merci
On 27 mar, 17:31, Péhemme <x...@xx.xx> wrote:
Est-ce que cet exemple peut t'aider y voir un peu plus clair ?
Sub P riodeAvecGestionErreur()
Dim D but As String, Fin As String
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
GoTo Erreur_1
Case Is = ""
GoTo Erreur_2
End Select
If Not IsDate(D but) Then
GoTo Erreur_3
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
GoTo Erreur_4
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
Exit Sub
'>>>>>>>>>>> tiquettes d'Erreur <<<<<<<<<<<<<<<<<<<<<
Erreur_1:
MsgBox "Vous avez cliqu sur Annuler" & vbNewLine & _
"=> On sort de la Proc dure"
Exit Sub
Erreur_2:
MsgBox "Vous N'avez PAS saisi de Date" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_3:
MsgBox "Il faut saisir une date VALIDE" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_4:
MsgBox "Vous avez annul la saisie" & vbNewLine & _
"=> On sort de la partie Fin de la Proc dure" & vbNewLine & _
"mais la partie D but est conserv e" & vbNewLine & _
"=> On relance la possibilit de saisie Fin"
GoTo RecommenceFin
End Sub
Michel
"ThierryP" <petithory.thie...@gmail.com> a crit dans le message
denews:0fedc38b-3196-42aa-8627-b91acf66a2c3@34g2000pru.googlegroups.com...
Non, non tu n'es pas le seul t'accrocher !! Moins de monde qu'au bon vieux
temps, mais on retrouve quand m me des anciens :-))))))
Je vais faire un mix de ta solution et de celle de Michel__D et a va
le faire !
N anmoins, il y des trucs que je ne comprends pas dans les
gestionnaires d'erreur :-(
Merci !
ThierryP
On 27 mar, 14:29, P hemme <x...@xx.xx> wrote:
Bonjour ThierryP,
M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As Boolean
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
End Sub
Michel (le seul qui s'accroche)
"ThierryP" <petithory.thie...@gmail.com> a crit dans le message
denews:e34f1b15-c8c8-4e41-8e06-49d3ef7c6b58@r19g2000prm.googlegroups.com...
Bonjour tou(te)s,
Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
J'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.
A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........
Merci d'avance
ThierryP
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End Sub
Merci pour le cours ;-))))))
En fait, ceci ne me pose pas de problème. Je voulais parler de "On
error goto xxx".
Je pensais que l'on pouvait réinitialiser le gestionnaire d'erreur
dans une proc avec "on error goto 0" et en créer un autre dans
la même proc avec "on error goto yyy", etc... Mais apparemment non, en
tous cas pas sur mon PC !!!
L'essentiel est d'avoir une solution fonctionnelle !
Merci
On 27 mar, 17:31, Péhemme wrote:Est-ce que cet exemple peut t'aider y voir un peu plus clair ?
Sub P riodeAvecGestionErreur()
Dim D but As String, Fin As String
Recommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
GoTo Erreur_1
Case Is = ""
GoTo Erreur_2
End Select
If Not IsDate(D but) Then
GoTo Erreur_3
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
GoTo Erreur_4
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End With
Exit Sub
'>>>>>>>>>>> tiquettes d'Erreur <<<<<<<<<<<<<<<<<<<<<
Erreur_1:
MsgBox "Vous avez cliqu sur Annuler" & vbNewLine & _
"=> On sort de la Proc dure"
Exit Sub
Erreur_2:
MsgBox "Vous N'avez PAS saisi de Date" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_3:
MsgBox "Il faut saisir une date VALIDE" & vbNewLine & _
"=> On relance la possibilit de saisie"
GoTo Recommence
Erreur_4:
MsgBox "Vous avez annul la saisie" & vbNewLine & _
"=> On sort de la partie Fin de la Proc dure" & vbNewLine & _
"mais la partie D but est conserv e" & vbNewLine & _
"=> On relance la possibilit de saisie Fin"
GoTo RecommenceFin
End Sub
Michel
"ThierryP" a crit dans le message
denews:
Non, non tu n'es pas le seul t'accrocher !! Moins de monde qu'au bon vieux
temps, mais on retrouve quand m me des anciens :-))))))
Je vais faire un mix de ta solution et de celle de Michel__D et a va
le faire !
N anmoins, il y des trucs que je ne comprends pas dans les
gestionnaires d'erreur :-(
Merci !
ThierryP
On 27 mar, 14:29, P hemme wrote:Bonjour ThierryP,M me si je n'ai pas tr s bien compris ton probl me, je m'y att le.
Je n'ai pas compris :>Debut et Fin sont dimensionn s en Date
sachant que ce qui sort d'une inputbox en type 2 est du string.
Je te propose donc le jeu de contr le suivant :
Sub P riode()
Dim D but As String, Fin As String
'Dim P riode As BooleanRecommence:
'>>>>>>>>>>>>>> Saisie et Contr le D but <<<<<<<<<<<<<<
D but = Application.InputBox("Date of Beginning (dd/mm/yyyy)", , , , , ,
, 2)
Select Case D but
Case Is = False
MsgBox "Vous avez annul la saisie"
Exit Sub
Case Is = ""
MsgBox "Il faut saisir une date"
Exit Sub
End Select
If Not IsDate(D but) Then
MsgBox "Il faut saisir une date valide"
GoTo Recommence
End If
'>>>>>>>>>>>>>> Saisie et Contr le Fin <<<<<<<<<<<<<<
RecommenceFin:
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf & _
"Click OK for same day", , , , , , , 2)
Select Case Fin
Case Is = False
MsgBox "Vous avez annul la saisie"
GoTo RecommenceFin
Case Is = ""
Fin = D but
End Select
If Not IsDate(Fin) Or Fin < D but Then
MsgBox "Il faut saisir une date valide" & vbNewLine & _
"Ou :" & vbNewLine & _
"La date de Fin doit tre post rieure OU gale D but"
GoTo RecommenceFin 'Exit Sub
End If
'>>>>>>>>>>> Traitement de la macro <<<<<<<<<<<<<<<<
With Sheets(1)
.Cells(5, 2) = CDate(Format(D but, "dd/mm/yyyy"))
.Cells(5, 3) = CDate(Format(Fin, "dd/mm/yyyy"))
End WithEnd SubMichel (le seul qui s'accroche)"ThierryP" a crit dans le message
denews:
Bonjour tou(te)s,Je patauge dans un probl me de gestion d'erreur....En gros, je cherche
faire ceci :
Debut et Fin sont dimensionn s en Date
Private Sub Periode_Click()
Recommence:
Debut = 0: Fin = 0
On Error GoTo Erreur -----> Si la date est invalide (35/01/2011 par
ex) je saute l' tiquette Erreur, qui renvoie au d part
Debut = Application.InputBox("Date of Beginning (dd/mm/
yyyy)", , , , , , , 2)
On Error GoTo 0 ------------> je croyais invalider le gestionnaire
d'erreur .......
If Debut = 0 Then Periode = False: Exit Sub
On Error GoTo suite ------------> Si la 2eme date est invalide je
saute l' tiquette Suite
Fin = Application.InputBox("Date of End (dd/mm/yyyy)" & vbCrLf &
"Click OK for same day", , , , , , , 2)
On Error GoTo 0
suite:
If Fin = 0 Then Fin = Debut Else GoTo Erreur --------> Si la variable
Fin est vide, j' affecte la valeur de Debut (jour unique)
--Traitement des donn es --
et je continue le traitement sinon je vais Erreur
Debut = 0: Fin = 0
Exit Sub
Erreur:
MsgBox "Typing mistake": GoTo Recommence
End SubJ'ai plusieurs soucis :
- si je donne la valeur 35/01/2011 Debut, je rentre bien dans mon
gestionnaire. Par contre, si je tape 15/13/2011, je rentre en mode
d bogage. Pourquoi ????
- si je fais entr e pour la variable Fin, je ne vais pas Suite, mais
en d bogage. Cela fonctionnait avant que je mette le premier
gestionnaire d'erreur sur Debut.A force de patauger, je vais me noyer !! Si une bonne me pouvait me
lancer une bou e........Merci d'avanceThierryP