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
A voir également:

3 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
Patrice33740 Messages postés 8931 Date d'inscription   Statut Membre Dernière intervention   1 782
 
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
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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