Eviter les erreurs !
Fermé
arc
-
28 août 2013 à 14:41
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 29 août 2013 à 10:33
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 29 août 2013 à 10:33
A voir également:
- Eviter les erreurs !
- Marques smartphone à éviter - Accueil - Guide téléphones
- Éviter pub youtube - Accueil - Streaming
- Comment eviter paris sur waze ✓ - Forum Réseaux sociaux
- Marque ordinateur portable à éviter ✓ - Forum PC portable
4 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
28 août 2013 à 15:09
28 août 2013 à 15:09
Bonjour,
ton code :
Sub macrodate()
Dim Jour As Date
On Error GoTo 1
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
If Not IsDate(Jour) Then GoTo 1
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End
1
MsgBox "Attention, vous avez saisi une mauvaise date"
Resume
End Sub
ton code :
Sub macrodate()
Dim Jour As Date
On Error GoTo 1
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
If Not IsDate(Jour) Then GoTo 1
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End
1
MsgBox "Attention, vous avez saisi une mauvaise date"
Resume
End Sub
C'est EXACTEMENT ce que je voulais, je n'avais pas compris le système de GoTo, je pensais qu'il fallait ciblé le debut de la macro, et non un MsgBox avec un code d'erreur personnalisé !
C'est vraiment super, seul bémol :
Si j'ai une feuille nommée 28-08, que je donne comme réponse a mon Inputbox 28-08, le message d'erreur apparaît en boucle et fait planter l'application, obligé d'arrêté le processus ^^.
Pourquoi ça ?
Merci beaucoup pour ton aide.
C'est vraiment super, seul bémol :
Si j'ai une feuille nommée 28-08, que je donne comme réponse a mon Inputbox 28-08, le message d'erreur apparaît en boucle et fait planter l'application, obligé d'arrêté le processus ^^.
Pourquoi ça ?
Merci beaucoup pour ton aide.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
28 août 2013 à 15:52
28 août 2013 à 15:52
bonjour,
essaie avec ca :
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End Sub
essaie avec ca :
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End Sub
C'est NICKEL, tu as juste oublié le On Error Go To 1 et l'etiquette 1 pour le MsgBox, je les ai ajouté et ça fonctionne a merveille.
TROP FORT merci beaucoup c'es parfait!
Dernière chose, je voudrais interdire les lettres dans mon Inputbox, c'est la dernière source d'erreur possible que j'ai pu trouvé, une idée de la methode a utiliser ?
TROP FORT merci beaucoup c'es parfait!
Dernière chose, je voudrais interdire les lettres dans mon Inputbox, c'est la dernière source d'erreur possible que j'ai pu trouvé, une idée de la methode a utiliser ?
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
Modifié par melanie1324 le 28/08/2013 à 17:34
Modifié par melanie1324 le 28/08/2013 à 17:34
bonjour,
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
test= jour
do while len(test)> 0
if not isnumeric(left(test,1)) then
a = "date"
end if
test = right(test,len(test)-1)
loop
if a = "date"
MsgBox "Attention, vous avez saisi une mauvaise date"
else
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
end if
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End Sub
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
test= jour
do while len(test)> 0
if not isnumeric(left(test,1)) then
a = "date"
end if
test = right(test,len(test)-1)
loop
if a = "date"
MsgBox "Attention, vous avez saisi une mauvaise date"
else
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
end if
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End Sub
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
29 août 2013 à 09:20
29 août 2013 à 09:20
Je n'avais pas compris une chose.
Tu ne peux pas interdire la saisie des lettres dans l'inputbox mais si tu saisis des lettres, la gestion d'erreur réagit donc garde ce code :
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
On Error GoTo 1
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
1
MsgBox "Attention, vous avez saisi une mauvaise date"
Resume
End Sub
Tu ne peux pas interdire la saisie des lettres dans l'inputbox mais si tu saisis des lettres, la gestion d'erreur réagit donc garde ce code :
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
On Error GoTo 1
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
1
MsgBox "Attention, vous avez saisi une mauvaise date"
Resume
End Sub
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
29 août 2013 à 10:33
29 août 2013 à 10:33
alors contente toi de :
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End Sub
Sub macrodate()
Dim Jour As Date
Dim a, feuille As Variant
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
Do While a <> "OK"
a = "OK"
If Not IsDate(Jour) Then
MsgBox "Attention, vous avez saisi une mauvaise date"
a = "date"
Else
For feuille = 1 To Sheets.Count
If Sheets(feuille).Name = Format(Jour, "dd-mm") Then
MsgBox " Une feuille se nomme déjà avec la date indiquée !"
a = "date"
End If
Next
End If
If a <> "OK" Then
Jour = (InputBox("Selectionner la date de la feuille", "DATE DE LA FEUILLE"))
End If
Loop
Sheets("Feuil1").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = Format(Jour, "dd-mm")
End Sub