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

Excel Discussion :

Forcer format date jj-mm-aa hh:mm


Sujet :

Excel

  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 77
    Par défaut Forcer format date jj-mm-aa hh:mm
    Bonjour,

    J'aimerai forcer l'utilisateur à ne pouvoir entrer qu'une date de ce format : jj-mm-aa hh:mm.
    Si le format n'est pas respecté, la valeur ne doit pas être accepté.

    J'ai essayé avec Data Validation en sélectionnant : Date, mais je n'arrive pas à spécifier pour les heures.
    Dans Format Cell, lorsque je sélectionne Custom avec ce format : jj-mm-aa hh:mm, l'utilisateur peut quand même entrer du texte.

    Dois-je absolument utiliser du VBA pour ce formatage de cellule ?

    Merci de votre aide,
    Floriane

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Vous pouvez toujours mettre un message de saisie via la validation de données, mais si les utilisateurs ne sont pas consciencieux, cela ne les empêchera pas de saisir n'importe quoi. Un bout de code VBA ferait le travail en annulant toutes saisies non conformes.
    Pièce jointe 602772

    Cdlt

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 676
    Par défaut
    Bonjour,

    Dans personnalisé tu peux mettre la formule suivante: =ET(STXT(C3;6;1)="-";STXT(C3;6;1)="-";STXT(C3;9;1)=" ";STXT(C3;12;1)=":";NBCAR(C3)=14) (où C3 était la cellule dans laquelle je positionnait ma validation de données) qui vérifie que les bons séparateurs soient placé au bon endroit et que le nombre de caractère correspond, note qu'on pourrait également ajouté des contrôles sur les valeurs pour jj mm aa hh et mm mais la formule que j'ai testé dépasse alors le nombre de caractère autorisé pour un validation de donnés (une solution pour contourner ce problème serait de passer par vba pour créer une fonction personnalisée)

  4. #4
    Membre Expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 556
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 556
    Par défaut
    Bonjour

    Pour "blinder" encore plus la proposition de halaster08, on peut aussi rajouter dans le ET, la partie suivante juste avant la parenthèse finale : ESTNUM(A1)=VRAI. Ceci afin de s'assurer qu'il s'agisse bien d'un nombre.

    En espérant que cela aide

    Bon après-midi

    Pierre Dumas

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Perso, je passerais par deux cellules, une pour la date et une pour l'heure.

    PS: Je n'ai jamais compris pourquoi on emm*** les utilisateurs avec des contraintes de saisie formatée. L'important est que la personne saisisse une valeur qui peut être comprise pour une date entre les valeurs bornes souhaitées, non? Ainsi la saisie de 44417,5 amènera Excel à afficher 09/08/2021 12:00 dans une cellule formatée "jj/mm/aaaa hh:mm".
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Perso, je passerais par deux cellules, une pour la date et une pour l'heure.
    C'est ce que je fais également et si vraiment on doit avoir une colonne contenant les deux valeurs, il suffit de faire l'addition de la date et de l'heure avec le format souhaité
    Et s'il faut créer une clé unique avec la date et l'heure pour gérer un agenda ou un Time sheet, il suffit de faire la concaténation des deux colonnes avec la fonction TEXTE
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    [...]
    Dans personnalisé tu peux mettre la formule suivante: =ET(STXT(C3;6;1)="-";STXT(C3;6;1)="-";STXT(C3;9;1)=" ";STXT(C3;12;1)=":";NBCAR(C3)=14)[...]
    Je ne suis pas d'accord, car cela implique que la saisie de la date soit réalisée dans une cellule formatée en TEXTE, ce qui est contreproductif.

    Lorsque la valeur est saisie dans une cellule formatée en DATE, la vraie valeur de la cellule est numérique, de sorte que les stxt travaillent sur la valeur numérique et pas la valeur affichée...

    Nom : 2021-08-10_093002.png
Affichages : 1412
Taille : 12,3 Ko



    Pour ce qui est de la contrainte de la saisie avec le - et de 4 chiffres pour l'année, par exemple 10-08-2021, ça va être vite brise-biscuits pour l'utilisateur qui a l'habitude de saisir une date avec / comme séparateur et l'année sur 2 chiffres (11/08/21), alors que le résultat pour Excel sera identique puisqu'il accepte les deux saisies sans soucis pour la même valeur au final. Pourquoi ne pas utiliser correctement Excel au lieu d'emm*** l'utilisateur avec des contraintes inutiles?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 249
    Par défaut
    Bonjour

    j'arrive avec quelques jours de retard.

    il suffit me semble t-il d'une validation de données "décimal" et un format de cellule "jj-mm-aaaa hh:mm"

    je tape seulement "16/8 17:" ou "16-8 17:" et j'obtiens "16-08-2021 17:00".
    pas de problème entre les adeptes du / et ceux du -
    les 0 sont inutiles : "8-8 8:8" donnera "08-08-2021 08:08"
    pour minuit, la date seule suffit.
    pour la date et l'heure actuelle : CTRL+; puis "espace" enfin CTRL+:



    Nom : 2021_08_16 format horaire.JPG
Affichages : 1289
Taille : 53,7 Ko

    Stéphane

Discussions similaires

  1. [XL-2007] Forcer Format date dans une colonne.
    Par vandman dans le forum Excel
    Réponses: 4
    Dernier message: 22/10/2014, 03h09
  2. Forcer Format date creation table
    Par Smallstones dans le forum Débuter
    Réponses: 1
    Dernier message: 02/02/2010, 10h21
  3. comment forcer le format date dans une requête
    Par chauvex99 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/07/2007, 09h49
  4. Forcer un format date
    Par javelot69 dans le forum Access
    Réponses: 5
    Dernier message: 05/07/2006, 13h12
  5. forcer la date en format francais
    Par shinrei dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/05/2006, 10h38

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