IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fenêtre InputBox et format de date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut Fenêtre InputBox et format de date
    Bonjour,
    Je vous soumets 2 problèmes que je rencontre avec l'instruction Application.InputBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nouvel_Index = Application.InputBox("Ancien index : " & Ancien_Index & vbCrLf & "Nouvel index ? ", Nouvelle_Date)
    Je travaille sur un tableau contenant des relevés d'index à diverses dates.

    Ma première question concerne le titre de la fenêtre qui correspond à ma variable Nouvelle_Date. Il s'affiche sous le format anglo-saxon mm/jj/aaaa. Comment faire pour qu'il s'affiche au format français jj/mm/aaaa ?

    Ma seconde question concerne le traitement du choix Annuler pour qu'il n'aboutisse pas à un message d'erreur ?

    Merci pour votre aide.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Vouloir tout faire en même temps (sur une seule ligne) est rarement suffisant. Et c'est peu compréhensible et difficilement maintenable.

    Pour un emploi plus précis (et plus pédagogique) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Explicit
    Sub Test()
    Dim invite As String
    Dim titre As String
    Dim reponse As Variant  'type important pour pouvoir traiter Annuler
    Dim ancien_index As Date
    Dim nouvel_index As Date
    Dim nouvelle_Date As Date
     
      ancien_index = #2/27/2020#
      nouvelle_Date = Date
      invite = "Ancien index : " & Format(ancien_index, "dd/mm/yyyy") & vbCrLf & "Nouvel index ? "
      titre = Format(nouvelle_Date, "dd/mm/yyyy")
      reponse = Application.InputBox(invite, titre)
      If Not reponse = False Then
        nouvel_index = DateSerial(Split(reponse, "/")(2), Split(reponse, "/")(1), Split(reponse, "/")(0))
        MsgBox "Nouvel index : " & Format(nouvel_index, "ddd dd mmm yyyy"), vbInformation
      Else
        MsgBox "Saisie annulée", vbCritical
      End If
     
    End Sub
    C'est en supposant que c'est bien une date qui est saisie, pour que ça plante pas dans le cas contraire, il faut bien évidemment y ajouter un contrôle de la valeur saisie.

    Voir : Gérer les Dates sous Excel et en VBA et Les fonctions de Date/Heure VBA

  3. #3
    Membre confirmé Avatar de horemheb
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Par défaut
    Bonjour Patrice740,
    Vouloir tout faire en même temps (sur une seule ligne) est rarement suffisant. Et c'est peu compréhensible et difficilement maintenable.
    C'est ce que je préconise aussi mais ne le fais pas toujours. La preuve . . .

    Donc pour mon titre il faut que je passe par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    titre = Format(nouvelle_Date, "dd/mm/yyyy")
    Et pour la réponse je passe par le test Reponse= False si on annule.

    Merci pour tes indications.

Discussions similaires

  1. Annuler InputBox en format date. Incompatibilité de type
    Par Mairequimby dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/12/2009, 15h01
  2. Détecter le format de date au démarrage
    Par stigma dans le forum Access
    Réponses: 2
    Dernier message: 20/02/2004, 11h04
  3. Réponses: 11
    Dernier message: 02/09/2003, 14h20
  4. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo