Problème de date et heure

Bonjour le forum,

Membre d'une association de secouristes, je gère le suivi des postes à assurer avec le personnel à y mettre. Je viens donc de commencer la construction d'un petit programme pour mieux m'organiser.

J'ai pas mal avancé déjà mais la je bloque depuis une journée sur le paramétrage des dates et heures entre les feuilles excel et les formulaires.

Pourriez-vous m'apporter un peu d'aide, svp ?

Le soucis est que les dates venant des UF s'inscrivent inversées dans les feuilles excel et du coup à la relecture sur les UF les dates sont inversées. J'ai beau mettre en format date ou autre cela ne change rien.

Serait-il possible de mettre un calendrier autonome sur ces TxBox correspondant aux dates ?

Cdlt

46pompaero1.xlsm (198.82 Ko)

Bonjour,

Essaie avec :

cells(lig,col)=cdate(ta_date)

Quant à mettre un Contrôle calendrier je te déconseille d'utiliser ceux livrés avec vba. Il n'y a aucun suivi et changent d'une version d'excel à l'autre.

Utilise plutôt un sélecteur de date construit dans un userform, il y a plein d'exemples sur le net.

eric

bonjour

tien tien ou joue plus au boules

pour la gestion des date & heure

A+

Maurice

Sub CreateModif(Lig)
   For C = 2 To 45
      Select Case C
         Case 2, 15 To 20
            If IsDate(Controls("TextBox" & C).Value) Then
               Sh.Cells(Lig, C).Value = CDate(Controls("TextBox" & C).Value)
            End If
         Case Else
            Sh.Cells(Lig, C).Value = Controls("TextBox" & C).Value
      End Select
   Next
End Sub

Bonjour, Salut Eric, Maurice !

Je suis surpris que tu découvres les problèmes de gestion des dates seulement maintenant (depuis le temps...)

La TextBox est en effet le plus mauvais support pour saisir des dates, la meilleure solution est toujours bien sûr de l'éviter, mais quand on est dedans... Il faut retenir pour l'essentiel :

  • qu'une date sortie d'une TextBox pour affectation à une cellule doit toujours être convertie en Date (dans la TextBox ce n'est jamais une donnée de type Date, mais de type String), soit avec CDate, soit avec DateValue (sans conversion explicite, une chaîne identifiable comme date sera convertie d'office par VBA mais selon ses critères natifs d'identification, soit le format américain) ;
  • que la fonction Format peut être utilisée pour mettre en forme une date affectée à une TextBox, mais jamais dans l'autre sens... ;
  • que si ta configuration fait que la conversion ne suffit pas à rétablir la situation, tu opères une double-conversion à la sortie de la TextBox, conversion de la chaîne en Date et de la date en entier long (CLng) :
d = CLng(CDate(TextBox1.Value))

par exemple, dans ce cas il te faudra veiller à mettre un format de cellule date (NumberFormat) s'il n'y est pas déjà (car Excel ne le fera pas d'office dans ce cas).

Cordialement.

bonjour

voila avec gestion heure & date

A+

Maurice

80pompaero1-copie.xlsm (159.21 Ko)

Bonjour eriiic, archer, MFerrand

@ eriiic

Merci pour tes conseils,.

Concernant les calendriers c'est bien dans le sens que tu dis que je souhaites aller parce que je savais que les Contrôles calendrier livrés avec VBA ne suivent pas à chaque évolution d'Excel. Je me suis déjà fais avoir

@ MFerrand

Merci pour tes conseils.

Désolé si je te surprend dans le mauvais sens , c'est vrai que j'arrive d'habitude à maîtriser un peu ce genre de soucis, mais la je ne sais pourquoi, ça ne voulais pas .

@ archer

Merci également de ton aide.

Eeeet non les boules ce n'était pas moi, mais ce fichier ma beaucoup inspiré pour le mien, c'est donc pour cela que tu retrouves une présentation similaire, mais le plus dur reste à venir pour moi car après il me faut faire un suivi (lien) entre les Missions et les Membres qui vaut y participer.

Ton code fonctionne très bien, mais je me suis permis de modifier un peu pour le format de heures, j'espère avoir bien fais.

Sub CreateModif(Lig)

 For C = 2 To 45
 Select Case C
 Case 2, 11
 If IsDate(Controls("TextBox" & C).Value) Then
 Sh.Cells(Lig, C).Value = CDate(Controls("TextBox" & C).Value)
 End If

 Case 15 To 20
 If IsDate(Controls("TextBox" & C).Value) Then
 Sh.Cells(Lig, C).Value = Format(Controls("TextBox" & C).Value, "hh:mm")
 End If

 Case Else
 Sh.Cells(Lig, C).Value = Controls("TextBox" & C).Value
 End Select
 Next

End Sub

Par contre quand j'ouvre U_CreatModifMis les TxBox 15 à 20 n'affiche toujours pas les heures mais des chiffres !!!!

que pourrai-je faire ?

Cordialement à vous

pompaero

75pompaero2.xlsm (200.86 Ko)

Re archer

Je vois que tu es lit dans les pensées des autres, très rapide dans les réponses .

Merci, je regarde à ton nouveau fichier.

Cdlt

Merci archer

Parfais ta présentation, quelle efficacité

Je n'est plus qu'à poursuivre mon projet en espérant y arriver au maximum seul. Sinon je sais ou m'adresser. lol.

A bientôt

cdlt

pompaero.

bonjour

tien encore une modife sur les combobox HI

A+

Maurice

121pompaero1-copie.xlsm (173.67 Ko)

Merci archer

Tes codes sont propre et net, c'est plaisant de les lire, impeccable.

J'essai de mettre en place un système sur le U_CreatModifMis de manière à avoir à disposition la liste des membres pour sélectionner les personnes dispo pour la mission au choix.

Mon objectif est de :

rentrer une mission.

demander aux membres leur disponibilité (admettons 10)

sélectionner dans les dispo (4 membres, par ex) à qui je dois avoir un suivi jusqu'à la fin de la mission, concernant les heures qu'ils feront, les défraiement km, et vacation.

Mon idée était d'avoir une listview avec les membres et à côté une autre listview qui récupère les membres dispo, ensuite pouvoir valider ou pas les membres qui feront la mission. Garder en archive toutes ces opérations.

Afin de voir un peu prêt ce que ça donne, je joins un fichier que j'ai commencé.

Cdlt

pompaero

49mission-poste.xlsm (96.02 Ko)

Désolé !!!

Je commence à faire n'importe quoi, le fatigue arrive et les yeux se ferme seul

Pour info, voici le principe de présentation que j'imagine sur U_CreatModifMis mais pas certain de mon coup cette fois ci.

Bonne nuit

Cdlt

14pompaero.xlsm (179.12 Ko)

bonjour

tu mélange tout ses pas bon

fait un autre userforme

et evite de donner une ancien version HI

A+

Maurice

Bonjour

Ok, merci pour l'info. Aller, Je repars de zéro avec un nouveau userform, c'est vrai que devrait être plus simple.

A bientôt pour un prochain sujet Hihi

Bonne journée

Cdlt

pompaero

bonjour

si tu as DTPicker sur ton ordi

voila une modife sur les dates

A+

Maurice

25pompaero1-copie.xlsm (152.56 Ko)

Bonjour archer

Ca fais plaisir de voir que tu ne lâche pas les post auxquels tu participes.

Pour les dates, perso, j'ai bien DTPicker, le soucis c'est que le dossier va aller sur l'ordi de l'association et lui n'a pas DTPicker !!! c'est pour cela que j'aimerai mettre un calendrier autonome.

Désolé de ne pas avoir donné de nouvelles plus tot, pas eu trop le temps de bosser la dessus, mais ce matin je m'y suis mis afin d'établir le 3ème volet (suivi des défraiement par membres pour chaque mission) MAIS pas trop d'inspiration sur ce coup .

Ce matin, j'ai commencé quelque chose !! je te joins en PJ, voir si je pars dans la bonne direction. Je viens tout juste de démarrer l'U_CreatModifDispo .

Merci de tes conseils.

Cdlt

pompaero

15pompaero-v2.xlsm (219.97 Ko)

bonjour

hum la U_Dispo tu a la listview qui le lit pas la bonne feuille si jais bien compris HI

et pour le DTPicker ses un ocx que tu peux mettre sur tous les excel 32 bits

le DTPicker ocx =(Mscontct2.ocx)

A+

Maurice

Bonjour archer

Pour le DTPicker, je connais il y a fallu que je l'installe pour moi, donc je verrai pour l'assos, l'installer peu être.

Je reviens avec un peu d'avancé, mais je crois (je suis sur même !!!! ) que je pars dans tous les sens ce qui m'est difficile d'avancer correctement.

Un peu d'aide, conseils seront les bienvenus je pense

Tu verras, j'ai avancé dans les tableaux sur les feuilles "Disponibilité" et "Défraiement" puis U_Dispo, U_CreatModifDispo, mais j'ai l'impression d'avoir fais n'importe quoi.

A bientôt

Cdlt.

26pompaero-v2.xlsm (264.93 Ko)

bonjour

je ne maitrise pas du tout les lisbox et en plus 3 la je ne comprend rien

désoler pour toi

A+

Maurice

Bonjour

Pas grave, je vais essayer d'avancer seul.

Les ListBox est le moyen que j'ai trouvé le mieux pour le moment, car je ne sais pas si on peux faire la même chose avec les ListView (dont je ne maitrise pas du tout.. ).

Tu n'a pas à être désolé, c'est déjà parfais tout ce que tu as fais.

A+

Cdlt

pompaero

Rechercher des sujets similaires à "probleme date heure"