Blocage VBA sur format Date
Bonsoir
Je débute en VBA et je suis bloqué.
Mon formulaire comprend les dates de début et de fin ce qui me permet de calculer une durée.
Je n’arrive pas à bloquer la macro si les dates ne sont pas remplies ou mal renseignées ce qui me créer un message d’erreur me bloguant ma macro.
Je vous joins un extrait des codes que j'ai employé.
Cordialement Navy55
Bonjour et bienvenue sur le forum
Au lieu d'un document pdf qu'on ne peut pas exploiter, tu devrais mettre ton fichier en pièce jointe.
Bye !
Bonsoir
Je vous transmets ci dessous mes Procédures
Procédure permettant d'initialiser le formulaire au démarrage
Private Sub UserForm_Initialize()
'Déclaration des variables
Dim NouvelID As Long
NouvelID = Application.WorksheetFunction.Max(Feuil2.Range("B:B")) + 1
Me.TextNumCd = NouvelID
Me.CmbClient.SetFocus
Me.Label2 = "Veuillez renseigner tous les champs non greizés."
End Sub
'Procedure contrale date Ordo
Private Sub TexDateordo_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Me.TexDateordo) <> 10 Or Not IsDate(Me.TexDateordo) Then
MsgBox "Entrez la date avec le format 'jj/mm/aaaa' !"
TexDateordo = ""
TexDateordo.SetFocus
Exit Sub
End If
End Sub
'Procedure controle date fin
Private Sub TexDatefin_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Me.TexDatefin) <> 10 Or Not IsDate(Me.TexDatefin) Then
MsgBox "Entrez la date avec le format 'jj/mm/aaaa' !"
TexDatefin = ""
TexDatefin.SetFocus
Exit Sub
End If
End Sub
'Copy du Formulaire sur fichier Source
'Accès derniere ligne
Sheets("Source").Activate
Range("b2").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Activate
'Copy Formulaire
ActiveCell = ActiveCell.Offset(-1, 0) + 1
ActiveCell.Offset(0, 1).Value = CmbClient
ActiveCell.Offset(0, 2).Value = ComboDépart
ActiveCell.Offset(0, 3).Value = ComboCommerc
ActiveCell.Offset(0, 4).Value = TexMedec
ActiveCell.Offset(0, 5).Value = TexFiness
ActiveCell.Offset(0, 6).Value = CDate(TexDateordo)
ActiveCell.Offset(0, 7).Value = CDate(TexDatefin)
ActiveCell.Offset(0, 9).Value = TexObserv
ActiveCell.Offset(0, 10).Value = TexStatu
ActiveCell.Offset(0, 11).Value = TexRef
ActiveCell.Offset(0, 12).Value = ComboFournis
ActiveCell.Offset(0, 13).Value = CInt(Me.TexQtpm)
ActiveCell.Offset(0, 14).Value = TexDesignat
ActiveCell.Offset(0, 15).Value = CCur(Me.TexTarif)
Me.TexMtcd.Value = CCur(TexTarif.Value) * CInt(TexQtpm.Value)
Et Voila
Cordialement