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 !
Bonjour forum
Ci-joint mon petit programme en cours d’élaboration grâce a vous et je suis bloqué dans le format des dates (spécialement dans le calendrier et les deux colonnes « date départ » et « date d’arrivé ») alors je vous sollicite a me donner un coup de main concernant la syntaxe des date
NB J’ai déposé un exemple de deux dates pour voir mon pblm de la syntaxe
THINKS http://cjoint.com/?BBmasmcnwQM
Relancer ton sujet à peine 30mn après alors qu'il est minuit passé?
Pour ma part, désolé mais aucun changement chez moi, je ne peux toujours pas lire les fichier au format Excel 2007. Donc soit :
-> il faut attendre quelqu'un équipé de ce logiciel et connaissant la solution à ce problème (ce qui limite le nombre de candidat, d'autant qu'à cette heure ci il y a beaucoup moins de monde : 123 personnes seulement et toutes ne sont pas des "répondeurs" 😉).
-> soit mettre un exemplaire de ton fichier converti au format Excel 2003, et ainsi tu toucheras un plus large public et donc aura plus de chance d'avoir une réponse, malgré l'heure très tardive. Surtout que ton problème n'étant pas propre à Excel 2007, pourquoi te fermer des portes? D'autant plus que tu semble pressé 😉
Re bonjour EXCEL LANT 😀 Merci pour les conseils mais le temps c'est de l'argent😎
voila mon fichier en 2003 espérant qu'il fonctionnera ????????
desolé pour le derangement de minuit 😱
BON WEEK-END http://cjoint.com/?BBmbjNwm5ro
Tu veux te faire virer du forum? Avec des remarques de ce genre, j'en connais qui ne vont pas aimer du tout 😀
Puisque tu le souhaite, soyons professionnel (bien que nous soyons tous bénévoles et là que pour le plaisir).
Voici mes remarques au fur et à mesure.
Remarque 1 :
Sur la feuille "FSC 2012" colonne B, tu as mis des listes de validations. C'est très jolie à première vu, mais quand on clic dessus... à la fin du dernier nom il y a des tonnes de lignes vide 🙁
Pour éviter cela il te suffit de :
-> cliquer sur "insertion" / "nom" / "définir..."
-> sélectionner dans la liste "NOM"
-> remplacer :
J'y pense, je m'excuse, par habitude j'ai donné la marche à suivre pour Excel version antérieur à 2007. Mais je suis sûr que tu trouveras l'endroit où cela se passe dans la version 2007 😉
Je vais voir s'y j'arrive à solutionner ton soucis, pendant que tu modifie cela et potasse cette fonction si utile : DECALER() et NBVAL().
A tout à l'heure (à moins qu'un plus rapide résolve ton problème avant)
Remarque 2 :
Sur la feuille "FSC 2012" colonne C, tu as mis des listes de validations. Et en même temps des listes de validations. Ca fait double emploi, non?
Autre soucis, avec la liste de validation "prénom" ainsi conçu, pour le "NOM 1", l'utilisateur peut saisir "Prénom 5", ce qui est plutôt embêtant non? 😉
Personnellement, pour cette colonne j'enlèverai la liste de validation et mettrais que la version formule 😉
Ou faire remplir cette colonne par ton UserForm 😉 Puisque dans l'UserForm tu effectue déjà la recherche :
"si le nom saisie est ... alors le prénom est ..."
Tu gagneras ainsi en simplicité et également en temps de traitement.
A tout à l'heure
PS. : en tout cas CHAPEAU BAS pour ton fichier, il est vraiment sympa et regorge d'astuces sympa. J'ai beaucoup aimé l'encadré avec un fond noir et un texte défilant à l'intérieur (même si cela fait un peu gadget) 🙂
Remarque 3 :
Dans ton UserForm Calendrier, lorsqu'on clic sur un Vendredi, cela semble poser un problème, puisqu'il y a un message d'erreur. Mais finalement il recopie quand même la date!
Je ne connais pas tes contraintes ni le fonctionnement, mais je me serais plutôt attendu à l'une de ces solutions : 1/ si le vendredi est une valeur "impossible", alors je représenterais le calendrier à l'utilisateur jusqu'à ce qu'il clic sur un jour qui ne tombe pas un vendredi 2/ si le vendredi est une date "bizarre" mais possible, alors au lieu d'une simple MsgBox :
J'aurais plutôt mis une MsgBox indiquant : "le jour choisi est vendredi!?! Vous êtes sûr de votre réponse"?
-> s'il clic sur le bouton "non", alors je lui représente le calendrier
-> s'il clic sur le bouton "oui", alors je valide la date
if msgbox ("Le jour choisi est un vendredi!?!" & vbCrLf & vbCrLf & "Vous êtes sûr de votre saisie?"+vbinformation,"Attention")=vbno then
UsF_Calendrier.Show
end if
à tester (du moins si cela correspond à tes besoins), car je n'arrive pas le faire sur ton fichier : je vois les macro mais ne peut les modifier (pourtant ton code n'est pas protégé)
RE SALUT
CONCERANAT LA 3 REMARQUE je ne veu pas utiliser la journier de vendredi journier de déplacement elle est inutile vendredi-samedi-dimanche c'est un week end prolongé
et pour le code il affiche un message "Incompatibilité de type" apres avoir remplacer
Private Sub BtnValider_Click()
Dim MaDate As Date
MaDate = Me.Calendar1.Value
If Weekday(MaDate, vbSaturday) = 7 Then
'MsgBox "Le jour choisi est un Vendredi !?"
If MsgBox("Le jour choisi est un vendredi!?!" & vbCrLf & vbCrLf & "Vous êtes sûr de votre saisie?" + vbInformation, "Attention") = vbNo Then
UsF_Calendrier.Show
End If
End If
ObjDate.Value = Format(Me.Calendar1, "dd/mm/yyyy")
Unload Me
End Sub
salut concernant la remarque 4
oui tu as raison , mais je n'ai pas encore terminer mon programme il est en chantier
..c'est pour cette raison que je suis un peu perturbé et limité par le temps..Et je tien a te remercier pour ton soutient
Remarque 5 :
Dans l'UserForm Formulaire, pourquoi pour le véhicule nous indiquons des "Km/h"? Ce n'est pas plutôt des "Km", dans le but de savoir combien de kilomètres ils ont effectué pour le projet ... (dans le but je suppose de refacturer cela plus tard au client).
Remarque 6 :
Dans l'UserForm Formulaire, on renseigne tout plein d'information, dont la date retour, pourtant tu as mis une formule mathématique sur ta feuille excel. Pourquoi faire le boulot deux fois. Dans le but de permettre une saisie manuelle de ton tableau? Sans avoir à passer par ton UserForm? Si tu veux que l'utilisateur passe absolument par ton UserForm, personnelement je vérouillerais ta feuille Excel de sortent que les utilisateurs puissent QUE regarder les données, mais pas les compléter et/ou corriger (au risque d'effacer une information importante et juste).
Remarque 7 :
Dans l'UserForm Formulaire, pour ta ComboBox2 : "ordre de", pour l'alimenter tu as mis dans ta macro : Private Sub UserForm_Initialize()
Si tu veux alléger ton code, tu peux supprimer cette ligne entièrement et à la place, tu vas sur ton UserForm, tu fais UN clic sur ta ComboBox2, dans les propriétés de ta ComboBox (en bas à gauche), sur la ligne "Row source", tu écris ORDRE.
Idem pour tes autres ComboBox 😉
Ca y est! J'ai tout testé ce qui me tombais sous la main. Espérant que toutes mes remarques t'auront servi en te permettant d'améliorer ce fichier déjà très bien conçu et te faire progresser.
Je me suis attaqué à ton problème de date, mais tu ne dis pas où est le problème! 1/ j'ai vérifié au niveau de ton Label34 : la date s'y inscrit correctement. Seul point bizarre, dans ton code VBA tu dis que la "date de retour" est égal à la "date de début" + Durée - 1 jrs est cela quelque soit l'ordre : "Mission" ou "Déplacement". Or sur ton fichier excel tu as écris via ta formule :
-> si l'ordre est "missions" : alors "date de retour" = "date de départ" + "Durée" - 1 jrs
-> si l'ordre est "déplacement" : alors "date de retour" = "date de départ" + 30 jrs
Si la bonne version est celle-ci alors il te faut remplacer :
VB:
Private Sub textBox1_Change()
TextBox1 = UCase(TextBox1)
' afficher la date de retour
If TextBox1.Value <> "" Then
Label34.Caption = "Date de retour est prevue le " & DateValue(TextBox2.Value) + TextBox1.Value - 1
End If
' afficher si le nombre de jour valide ou non
If TextBox1.Value > 31 Then MsgBox ("Nombre de jours invalide, Veuillez taper un nombre inferieur a 31 ")
End Sub
par ceci :
VB:
Private Sub textBox1_Change()
TextBox1 = UCase(TextBox1)
' afficher la date de retour
If TextBox1.Value <> "" Then
If ComboBox2.Value = "Mission" Then
Label34.Caption = "Date de retour est prevue le " & DateValue(TextBox2.Value) + TextBox1.Value - 1
Else
Label34.Caption = "Date de retour est prevue le " & DateValue(TextBox2.Value) + 30
End If
End If
' afficher si le nombre de jour valide ou non
If TextBox1.Value > 31 Then MsgBox ("Nombre de jours invalide, Veuillez taper un nombre inferieur a 31 ")
End Sub
Ne pouvant tester le code, je te laisse le soins de la faire?
2/ j'ai vérifié au niveau de ta feuille Excel : "FSC 2012" : la date s'y inscrit correctement également
Pour m'en assurer, dans ta macro : Private Sub CommandButton2_Click()
J'ai rajouté la ligne de code suivante :
.Range("G" & m) = DateValue(TextBox2.Value) + TextBox1.Value - 1
Tout se passe bien au niveau de ta feuille Excel. Ah oui j'y pense! J'ai réussi à copier ce code et le tester bizarre! Mais bon, ce n'est pas le problème qui nous intéresse.
3/ je ne vois pas à quelle autre endroit tu pourrais avoir un soucis de date.
- 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