Dates dans excel

lolo14 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
    ...
    0
  3. Lolo14
     
    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
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
      0