Bonjour,
La procédure ci-dessous - sur la base d’une date inscrite dans une InputBox - ouvre normalement le classeur du mois précédent.
Mais si ce classeur n’existe pas, la procédure se bloque bien entendu et la dernière ligne de mon code se met en surbrillance.
Il serait alors intéressant :
1 qu’un message d’erreur apparaisse dans une MsgBox en indiquant que la date entrée est peut-être erronée ou que cette feuille n’existe pas et
2 qu’en cliquant sur « Réessayer », on puisse indiquer une autre date (avec un retour au point 1 ci-dessus si la nouvelle date inscrite ne passe toujours pas) ou qu’en cliquant sur « Annuler », la procédure s’arrête.
Il y a déjà un premier contrôle en place afin de s’assurer que le format de la date inscrite soit correct.
Pouvez-vous m’aider à résoudre ce problème ?
Sub Recherche_FichierMoisPrécédent_CopierFeuille_RefermerFichierMoisPrécédent()
Dim v_date, v_mois
Dim DV As String
' Ouvre automatiquement le fichier du mois précédent,
' enregistre le nom de ce fichier afin de le refermer ci-après,
' copie et transfert la feuille des données du mois passé dans ce fichier,
' referme le fichier du mois précédent et renomme la feuille déplacée
' pour ouvrir le fichier du mois précédent
Dim message As String, title As String, default As String, Date_décompte As String
Dim annee1 As String
Application.ScreenUpdating = False
chemin = "C:\Users"
retour:
DV = InputBox("Décompte du JJ.MM.AAAA ?")
Date_décompte = DV
If DV = "" Then Exit Sub
If Not (DateValide(DV)) Then
MsgBox "Date non valable": GoTo retour
Else
End If
vmois = Left(Date_décompte, 2)
annee = Right(Date_décompte, 4)
Select Case vmois
Case "0" & 2 To 10
vmois1 = "0" & vmois - 1
annee1 = annee
Case Is = "0" & 1
vmois1 = 12
annee1 = annee - 1
Case Is > 10
vmois1 = vmois - 1
annee1 = annee
Case ""
Exit Sub
End Select
Workbooks.Open Filename:=chemin & "\" & annee1 & "_" & vmois1 & "_Impôt" & ".xls"
.................................................(code exécutant d'autres opérations)
End Sub