Problème avec DateAdd

Bonjour à tous,

Si je change la valeur de mon ComboBox (Corps), je veux que la valeur (date) de mon TextBox (Fin_PPI) soir recalculée donc j'ai codé comme suit mais sans résultat :

Private Sub Corps_Change()
    If Me.Corps.Value = "EVAT" Then
    Me.Fin_PPI.Value = DateAdd("m", 6, Me.DES.Value)
    Else
    Me.Fin_PPI.Value = DateAdd("m", 3, Me.DES.Value)
    End If
End Sub

Mais rien ne se passe donc je présume que je n'utilise pas la bonne syntaxe.

Merci de bien vouloir corriger mon erreur.

Bon après-midi.

Bonjour

Pour info le code fonctionne, ou alors j'ai raté quelque chose

41test.xlsm (18.40 Ko)

Re Banzai,

Oui, effectivement cela fonctionne bien : pourquoi cela ne fonctionnait pas tout à l'heure, je n'en ais pas la moindre idée à moins que à moins que cela du fait que tu as rajouter :

If Not IsDate(Me.DES) Then Exit Sub

au début du code.

Merci d'avoir testé et de m'avoir répondu.

Bonne soirée.

@+.

Bonjour

Enlèves le test et essaies sans mettre de date

Re,

Je confirme : sans le test, il y a une erreur du même type que j'avais tout à l'heure.

Encore merci et bonne soirée à toi.

@+.

Bonjour à tous, Banzai,

Désolé de t'embêter mais je voudrais savoir s'il était possible dans la même procédure, c'est à dire dans l'évènement Change de :

1- forcer l'utilisateur à saisir un format de date obligatoire (jj/mm/aaaa) ;

2- de procéder au calcul uniquement quand l'utilisateur a saisi le bon format de date.

Merci de ta patience et de ta compréhension.

Bon après-midi.

Bonjour

A tester

Rajoutes cette macro dans le code de l'userform

Private Sub DES_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If Me.DES <> "" And Not IsDate(Me.DES) Then Cancel = True
End Sub

Merci, je teste et te redis.

@+.

Re,

Pas de résultat concluant avec ta dernière réponse mais ce n'est pas grave, j'ai réussi à contourner le problème en changeant l'évènement Change par AfterUpdate ainsi le calcul se fait à la sortie du TextBox.

Merci et bonne fin d'après-midi.

@+.

Bonjour

Si tu ne rentres pas une date dans la TextBox "DES" tu ne peux en sortir, alors si tu penses que cela ne t'oblige pas à saisir une date, essayes et tu verras

Bonjour à tous,

forcer l'utilisateur à saisir un format de date obligatoire (jj/mm/aaaa)

Au lieu d'un textbox tu peux utiliser un contrôle date&time picker. Le résultat sera obligatoirement une date valide.

eric

Bonjour Eric,

Oui effectivement c'est une autre possibilité.

Je vais méditer mais peut-on agir sur ce genre de contrôle aussi facilement qu'avec un TextBox ? (par exemple peut-on alimenter avec une date provenant d'une feuille de calcul ?).

Et en plus, je crois me souvenir que toutes les versions d'Office ne le possède pas d'origine mais qu'il faut télécharger un fichier que je ne pourrais certainement installer sur les PC des hommes camouflés car pour cela il faut les droits Administrateur car nos PC sont verrouillés au strict minimum.

Enfin, bref, en attendant j'ai trouvé avec insertion des "/" en automatique + Format "dd/mm/aaaa" sur l'évènement AfterUpdate.

Merci et bonne soirée.

@+.

Re,

peut-on alimenter avec une date provenant d'une feuille de calcul ?

oui bien sûr.

je crois me souvenir que toutes les versions d'Office ne le possède pas d'origine

C'est souvent un pb oui.

Utiliser de préférence Date&time picker, Calendar est absent des dernières versions.

eric

Rechercher des sujets similaires à "probleme dateadd"