Imposer le format jj/mm/aa hh:mm

misterjo

XLDnaute Nouveau
Bonjour à tous,

Je suis à la recherche d'une solution pour un problème au boulot et malgrès de nombreuses recherches, point de solution (encore la faute à Murphy).

Il y a des opérateurs qui doivent renseigner tous les jours un fichier Excel intermédiaire qui va servir à alimenter une base de donnée Oracle.
Les cellules contenant les références de date doivent impérativement être au format jj/mm/aa hh:mm pour alimenter la base dans le bon format.
Cette condition est essentielle et je cherche un moyen d'imposer à 100% cette saisie.
La fonction Donnée/Validation serai appropriée mais on ne peut que filter la date ou l'heure mais pas le format date + heure (à moins que j'ai loupé quelque chose) .
Le format de cellule DATE est mis en place mais si l'opérateur saisie jj/mm/aa hhHmm ou jj-mm-aa hh:mm ben c'est quand même accepté (bien sur Murphy n'est jamais trés loin...).
C'est peut être une "bricole" mais je ne trouve pas de solution.

Merci d'avance de vous penchez sur mon problème qui, je l'espère, à une solution.

Salutations
 

JYLL

Nous a quitté
Repose en paix
Re : Imposer le format jj/mm/aa hh:mm

Bonjour misterjo et le Forum,

Une solution peut être qui vérifie la saisie de l'heure en plus de la date avec l'utilisation de la mise en forme conditionnelle à laise de cette formule:

Code:
=A1-ENT(A1)=0

Si la date ne comporte pas d'heure, il n'y a pas de décimale et mettre la cellule en rouge faire un essai dans l'exemple joint.

Bon test.
 

Pièces jointes

  • Date_heure.xls
    13.5 KB · Affichages: 111
  • Date_heure.xls
    13.5 KB · Affichages: 112
  • Date_heure.xls
    13.5 KB · Affichages: 114
Dernière édition:

misterjo

XLDnaute Nouveau
Re : Imposer le format jj/mm/aa hh:mm

Merci Jean-Yves de t'interressé à mon problème.
On avance car effectivement si il n'y a pas d'heure de saisie, la cellule passe au rouge, mais si on rentre 01/05/07 02h33 ça accepte la saisie (la cellule reste en blanc) d'ailleur la saisie de 01-05-07 02:33 est accepté aussi.

Si la solution ne peux être trouvé dans les différentes possibilités de paramétrages d'Excel, il faudra, je pense, passer par USF afin de demander à l'opérateur lorsqu'il clique dans la cellule à renseigner la date et l'heure afin d'en faire l'assemblage et le formatage jj/mm/aa hh:mm puis de coller le résultat dans la cellule.
Si quelqu'un saurai faire ce code qui doit interressé beaucoup de personnes au vue des nombreuses questions sur les contrôles des saisies effectués (plus besoin de faire de contrôle puisque vérifié et mis en forme par le code du USF).

Merci encore Jean-Yves mais le format de saisie dans la cellule est impératif et ne peux laisser d'autre choix que le format demandé.
 

JYLL

Nous a quitté
Repose en paix
Re : Imposer le format jj/mm/aa hh:mm

Re Bonjour Misterjo et le Forum,

La date et l'heure que tu souhaites saisir sont-elles celles du moment ou la date et les dates et heures sont-elles différentes à chaque saisie. Sinon avec une macro et Now() tu aurais cela.

Voilà le fruit de ma réflexion à ton problème. Un clic droit dans les cellules de A1:A50 et une Userform s'affiche. Elle contrôle la saisie.

A tester et améliorer si besoin.
 

Pièces jointes

  • Date_heure.zip
    11.9 KB · Affichages: 52
  • Date_heure.zip
    11.9 KB · Affichages: 52
  • Date_heure.zip
    11.9 KB · Affichages: 60
Dernière édition:

misterjo

XLDnaute Nouveau
Re : Imposer le format jj/mm/aa hh:mm

Jean-Yves,

Les dates et heures correspondent à certains évenements dans la journée et sont donc aléatoire.
Bravo pour ta solution qui correspond toute à fait au problème mais il manque le contrôle des 2 champs saisie DATE et HEURE.
En effet pour la date on peut cliquer sur le calendrier et donc la date est bien formatée jj/mm/aa mais on peux également saisir manuellement dans le champ jj-mm-aa et c'est engegister. Pour l'heure itou, si on rentre 21h30 c'est également accepté.
Jean-Yves déja un Grand merci car aux, contrôles près, ça colle pil-poil a mon problème.
Autres question, peut on déclencher automatiquement la USF lorqu'on clique dans une ou des cellules devant être renseignées avec la date + heure ?

Marc.
 

JYLL

Nous a quitté
Repose en paix
Re : Imposer le format jj/mm/aa hh:mm

Re Bonjour Misterjo et le Forum,

Voici une nouvelle mouture du classeur, tu ne peux saisir la date quand cliquant dans le calendrier la texboxt étant vérouillée. pour l'heure je je prends l'heure, ajoute ":" et les minutes.

Un clic gauche dans la cellule suffit pour avoir l'interface de saisie. A1:A50

A tester, le but ne doit pas être loin.
 

Pièces jointes

  • Date_heure.zip
    14.1 KB · Affichages: 33
  • Date_heure.zip
    14.1 KB · Affichages: 41
  • Date_heure.zip
    14.1 KB · Affichages: 39
Dernière édition:

misterjo

XLDnaute Nouveau
Re : Imposer le format jj/mm/aa hh:mm

Jean-Yves,

Après test, le seul détail qui coince étant la saisie de l'heure.
Le contrôle et le formatage fonctionne au poil pour les heures saisie entre 00:00 et 23:59 mais si il est saisie 24:00 ou au dessus (je sais les journées on 24:00 mais une erreur de saisie est toujours possible) par exemple 25:00 ben la cellule enregistre un nombre à virgule en lieu et place de la date + heure et ne génère pas d'avertissement.

A ce détail près c'est tip top.
 

JYLL

Nous a quitté
Repose en paix
Re : Imposer le format jj/mm/aa hh:mm

Bonsoir misterjo et le Forum,

Voici la correction effectuée pour les heures supérieures à 23 et également le minutes si la personne tape plus de 59 mn.

Bon test et à + sur le Forum.
 

Pièces jointes

  • Date_heure.zip
    14.5 KB · Affichages: 41
  • Date_heure.zip
    14.5 KB · Affichages: 47
  • Date_heure.zip
    14.5 KB · Affichages: 46

misterjo

XLDnaute Nouveau
Re : Imposer le format jj/mm/aa hh:mm

Jean-Yves,

après test, il n'est plus possible se saisir l'heure avec le "0" devant les heures de 1:00 à 9:00. En effet la saisie de 01:20 renvoie une erreur tandis que la saisie de 1:20 est accepter et engegistrée malgrès tout dans le format 01:20.
Une option de confort pour l'utilisateur, peut on fermer automatiquement le USF après le clique sur le bouton de validation ?

A ces 2 rectifications près, je te remercie sincèrement du temps passé à plancher sur mon problème qui, je l'espère, pourra également servir pour d'autre application.

Je dois maintenant intégrer cette "option" dans mes fichiers au boulot et je voudrais savoir si il existe une méthode simple pour récuperer le code avec son USF (on peux toujours réver) ou dois je recréer la procédure dans mes fichiers ?
 

JYLL

Nous a quitté
Repose en paix
Re : Imposer le format jj/mm/aa hh:mm

Re bonsoir Misterjo et le Forum,

Corrections faites. pour ce qui est de l'importation rapide dans ton classeur.

En premier tu ouvre mon classeur, Tu cliques bouton droit de la souris sur l'onglet "feuil1" et sur "Afficher le code" . Tu verras le code qui est pour la "feuil1" Tu sélectionnes tout ce code avec la touche "CTRL" enfoncée et la touche "A" tu fais un copier.

Tu ouvres ton classeur et idem pour accéder à la "feuil1" et tu fais un "coller" le code est dans ton classeur.

Tu as deux fichiers en plus, si tu sais aller dans VB, la touche "ALT" enfoncée tu appuies en plus sur "F11" tu es dans VB. Maintenant tu cliques sur "Fichier" "Importer un Fichier" et tu Choisis "Userform1.frm" et le code de la Userform1 est dans ton classeur. la macro fonctionne normalement quand tu cliques dans ta "feuil1" colonne "A" .

Bon test je suis le fil au cas ou.
 

Pièces jointes

  • Date_heure.zip
    14.5 KB · Affichages: 60
  • Date_heure.zip
    14.5 KB · Affichages: 67
  • Date_heure.zip
    14.5 KB · Affichages: 64
  • Userform1.zip
    3.1 KB · Affichages: 54
  • Userform1.zip
    3.1 KB · Affichages: 58
  • Userform1.zip
    3.1 KB · Affichages: 57

misterjo

XLDnaute Nouveau
Re : Imposer le format jj/mm/aa hh:mm

Jean-Yves,

BRAVO.

J'ai réussi l'importation dans mes fichiers de ton code et de la USF grace à tes explications claires et précises.

J'ai pu faire mon premier test au boulot avec un opérateur lambda et il est OK avec l'interface de saisie (du moment que ça simplifie) mais il m'a demander de rajouter en dessous du bouton de validation dans la USF un bouton d'effacement de la cellule sélectionnée.
En effet, le nombre de dates saisie varie chaque jour dans ce fichier et si l'opérateur "rentre" des dates il faut également qu'il en supprime (ça parait évident mais j'y avais pas pensée). Comme la USF apparait dés qu'il sélectionne la cellule, l'opérateur demande la possibilité de supprimé l'ancienne date présente dans la cellule, comme ça, toute les manipulations de date pourront se faire à travers ta USF sans avoir à intervenir en "manuelle" dans les cellules date.

En synthèse, si tu pouvais rajouter en dessous du bouton de validation un bouton d'effacement qui aurait le même comportement que le bouton de validation, à savoir effacer la cellule sélectionner, puis fermer la USF.
 

JYLL

Nous a quitté
Repose en paix
Re : Imposer le format jj/mm/aa hh:mm

Bonjour Misterjo et le Forum,

voici le fichier modifié, il te faudra supprimer la usuform que tu as importer et cliquant dans l'explorateur de projet sur son nom et sur supprimer sans sauvegarder et mettre la nouvelle à la place.

Bon test.
 

Pièces jointes

  • Userform1.zip
    1.7 KB · Affichages: 48
  • Userform1.zip
    1.7 KB · Affichages: 46
  • Userform1.zip
    1.7 KB · Affichages: 46

misterjo

XLDnaute Nouveau
Re : Imposer le format jj/mm/aa hh:mm

Jean-Yves,

100% opérationnel.

Il manquait la fermeture de la USF après le clique sur "Effacement cellule" mais j'ai récupérer le code de fermeture après le clique du bouton "Valider" et coller à la bonne place et c'est parfaitement OK.

Mille merci pour ta disponibilitée et ta patience.

Encore BRAVO.

Salutations.
 

JYLL

Nous a quitté
Repose en paix
Re : Imposer le format jj/mm/aa hh:mm

Re Bonjour Misterjo et le Forum,

J'avais volontairement laissé la userform active, ceci pouvait te permettre d'effacer plusieurs cellules en les séléctionnant les unes aprés les autres la userform n'étant pas Modal. (Modal) = Prioritaire.

Heureux de t'avoir aidé et une prochaine sur le Forum.
 

misterjo

XLDnaute Nouveau
Re : Imposer le format jj/mm/aa hh:mm

Jean-Yves,

Encore une question si tu as le temps.
Le code et la saisie fonctionne pil-poil et le document est envoyé à d'autre personnes par OUTLOOK via la commande placer dans une macro associée à un bouton d'envoie :

ActiveWorkbook.SendMail Recipients:="NICO jacques", ReturnReceipt:=True

La personne receptrice aimerai récupérer les données par copier/coller mais la USF de saisie apparait à chaque fois qu'il veut récupérer une date.

La question est :

est-il possible de désactiver, dans la macro d'envoie, la USF dans le document envoyé par OUTLOOK ?
Ou est il possible de déclencher la USF seulement sur clique gauche dans les cellules et de laisser le clique droit laisser apparaitre le menu contextuel avec le "copier" ou "coller" habituel ?
 

Discussions similaires

Réponses
3
Affichages
552
Réponses
20
Affichages
2 K

Statistiques des forums

Discussions
312 504
Messages
2 089 073
Membres
104 019
dernier inscrit
pascal la