Dates dans excel

Bonjour,
J'ai un petit soucis en VBA. Je crée une macro qui resemble à celà :
Sub Date1B()
Range("I9").Value = InputBox("Veuillez entrer la date de la 1ere journée:", "1ere journée")
If Cells(9, 9) = "" Then
Range("I9:L46").Select
Selection.ClearContents
Range("O9:R46").Select
Selection.ClearContents
Range("AA1").Select
ActiveSheet.Protect
[End Sub]
MsgBox " Vous avez abandonné l'initialisation des nouvelles dates" & Chr(10) & _
" ou omis de spécifier la 1ere date !" & Chr(10) & _
" Les nouveelles dates ne sont pas enregistrées.", vbCritical, "Abandon"
Else
Date2B
End If
End Sub

Elle me permet de taper une date pour que celle-ci s'affiche dans la cellule I9.
Tout celà fonctionne parfaitement sauf si je tape une date avec un jour entre 1 et 12.
par exemple, si je tape 06/08/2011 dans ma MsgBox, la date qui s'affiche dans la cellule I9 devient 08/06/2011. Le jour et le mois sont inversés. Par contre, si je tape une date style 13/05/2011, pas de soucis.
J'ai essayé de triturer le format de la cellule, rien n'y fait.
Un cerveau supérieur peut-il m'aider svp?
Cordialement

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour

    pas trop compris ce que tu veux faire
    tu demande de remplir une date en I9 et ensuite tu déclenches une action si I9 est vide (d'ailleurs, pourquoi passer en cells(9,9)=range("I9") ?)

    bon:
    tu as intérêt à imposer un format (comme sur un site web: si tu tapes 56, tu auras le 25/02/1900...)

    voilà une procédure qui te restitue au format français

    Dim valeur As String
    Dim jour As Date
         valeur = InputBox("Veuillez entrer la date de la 1ere journée" & vbLf & _
         "sous la forme jj/mm/aaaa:", "1ere journée")
         If Not valeur Like "##/##/####" Then GoTo erreur
        jour = valeur
        Range("I9") = jour
    
    '......ton code
    
         Exit Sub
    erreur:
    MsgBox "saisie incorrecte", vbCritical
    End Sub


    pour nettoyer tes 2 zones un code + bref et + rapide

    Range("I9:I46,O9:O46").ClearContents

    1. Bonjour,

      Essaie :
      Sub Date1B()
      Dim D As Date
      D = InputBox("Veuillez entrer la date de la 1ere journée:", "1ere journée")
      Range("I9").Value = D
      ...
      1. Bonjour Patrice
        Merci beaucoup d'avoir pris le temps de me répondre.
        Ca marche à merveille.
        Je me suis lancé à corps perdu et j'ai zappé la fonction DIM -))
        Encore mille mercis
        Laurent
        1. Contributeur
          Je sais, je suis C...

          Sur ton inputbox, je peux donc mettre un nombre, cela me renverra une date mais ce que je marque ou rien, c'est pareil...

          Ça nivelle de + en+ vers le bas sur ce forum

          Lolo14, merci aussi de m'ignorer complètement