Inputbox format date (besoin d'un 2ème regard)

  • Initiateur de la discussion Initiateur de la discussion Membre supprimé 156683
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Membre supprimé 156683

Guest
Bonjour à tous,

Je réalise une Inputbox où la personne indique une date dont je me sers comme donnée pour filtrer automatiquement une colonne;

Sub()

K = InputBox("Date ? ", Format(Date, "dd/mm/yyyy"))
If K = "" Then Exit Sub
Sheets(1).Select

Selection.AutoFilter Field:=13, Criteria1:=">=" & CDate(K) & "", Operator:= _
xlAnd

End Sub

Le problème est que la date retournée (même si elle est au format dd/mm/yyyy)
apparait dans la boite de l'autofiltre au format mm/dd/yyyy lorsque dd est inférieur à 12.

C'est un problème connu, j'ai donc essayé plein de codes différents mais rien n'y fait (voir fichier joint).
D'ailleurs même si j'indique une date comme 24/05/2010, le filtre ne fonctionne pas.

J'aurais donc besoin d'un 2ème regard sur mon code SVP.

Merci d'avance.

M&m
 

Pièces jointes

Re : Inputbox format date (besoin d'un 2ème regard)

Tout d'abord merci masterdisco de m'avoir répondu,

je viens d'essayer ta solution mais au final j'ai toujours le même problème:

la date retournée par "Tadate" dans le filtre se met au format US (au lieu de 10/03/2010 elle me retourne 03/10/2010) 🙁

Je ne comprends vraiment pas d'où viens ce problème, j'ai même regardé les paramètres régionaux de mon Windows ainsi que ceux d'Office ^^ (tous les 2 en FR bien entendu)

Need help please !

M&m
 
Bonjour à tous !

Je remonte ce fil car j'ai le même souci mais je n'arrive pas pour autant à le résoudre (d'ailleurs, il ne manque pas une page à cette conversation ? Oo)

En effet, dans une InputBox, la personne indique la date au format dd/mm/yyyy (avec date du jour pré-indiquée), qui se renvoie dans une cellule. Malheureusement, dans la cellule , si la date est inférieure au 13 du mois, il est écrit la date au format mm/dd/yyyy même si le format de la cellule reste bien en dd/mm/yyyy... du coup la date est fausse !

Voici le code :

Code:
Sub Inputbox_format()
    Dim LaDate As String
    LaDate = Format(Date, "dd/mm/yyyy")
    Do
        LaDate = Application.Inputbox("Entrez la date du jour de calcul désiré au format jj/mm/aaaa :", "Date", LaDate)
    Loop Until IsDate(LaDate)
    Worksheets("Divers").Range("B19").Value = LaDate
End Sub

J'ai essayé en changeant le format de ma variable As Date mais ça me fait l'inverse !

Comment puis-je résoudre ce format de date ?

Merci !
 
Bonjour MJ13 et merci pour ta réponse.

Alors ok pour le As Date, ça fonctionne en effet (j'avais déjà testé), mais la date pré-indiquée est elle inversée sous le format m/d/yyyy. Ce qui est du coup trompeur car si l'utilisateur valide cette date, il n'aura pas le bon jour (sans compter que le format n'est plus le bon je ne sais pas pour quelle raison). Comme 90% du temps, la date de calcul est bien celle du jour, j'aimerais que celle-ci soit affichée par défaut, ce qui fonctionne en String.

Concernant CDate, merci pour l'info, je l'ai essayé un peu dans tous les sens et un peu partout, je ne sais pas comment l'utiliser. Qu'est-ce qu'il est censé faire exactement ?

Merci
 
Re

Tu peux tester ce code: Cdate permet de convertir un texte en date (voir l'aide sur la fonction cdate).

VBA parle anglais, donc il vaut mieux lui parler en mm/dd qu'il traduira normalement en jj/mm avec cdate.

VB:
Sub Inputbox_format()
    Dim LaDate As Date
    LaDate = Format(CDate(Date), "mm/dd/yyyy")
    Do
        LaDate = Application.InputBox("Entrez la date du jour de calcul désiré au format jj/mm/aaaa :", "Date", Format(LaDate, "mm/dd/yyyy"))
    Loop Until IsDate(LaDate)
    Worksheets(ActiveSheet.Name).Range("A2").Value = CDate(LaDate)
End Sub
 
Merci MJ13, c'est la subtilité pourtant logique d’inversement des jours et des mois que je n'avais pas intégré, tu lui parles en anglais, il te traduit selon sa configuration. Et forcément, pour que l'InputBox garde le format désiré, il faut également lui signaler : c'est pour ça qu'il me le conservait quand ma variable était en String car c'était du texte !

En revanche, pour l'écriture dans la cellule, je ne sais pas pourquoi il faut de nouveau convertir LaDate puisqu'on l'a déjà fait.

En tout cas, un grand merci, ça fonctionne !

Bonne soirée !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
74
Réponses
8
Affichages
450
Réponses
2
Affichages
429
Réponses
4
Affichages
727
Réponses
10
Affichages
701
Retour