Format date dans textbox et date automatique

Rebonjour à tous,

Voilà, je galère avec la date...!!

Dans mon classeur excel, je veux que les dates s'affichent dans le format aaaa-mm-jj.

Dans mon userform, je voudrais qu'elle s'affiche de la même façon (aaaa-mm-jj)... Pour l'instant, même si le format dans le classeur est aaaa-mm-jj, quand la date s'affiche dans mon userform, elle se met automatiquement au format jj/mm/aaaa et, donc, quand je sauvegarde, elle recopie dans ce même format dans mon classeur (jj/mm/aaaa).... Je ne comprends pas vraiment pourquoi... ?

Aussi, je voudrais que, quand je finis de compléter la date dans "Date effective", la textbox "Date expiration" affiche automatiquement la même date + 1 an.

Je suppose qu'une fois que le problème pour le format de la date sera résolue, ce sera assez simple de faire que la date d'expiration s'ajuste et s'ajoute automatiquement... ?

Merci de votre aide, je vous joins le fichier!

205job.xlsm (119.07 Ko)

Désolé j'ai été absent une bonne partie de la journée donc je n'ai pas pu continuer sur le fil précédent...

La syntaxe pour charger ton texbox date est

TextBox8 = Format([H2], "yyyy/mm/dd")

Or tu as chargé les textbox dans cette boucle :

            For j = 2 To 9
                UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value
            Next j

il faut donc reprendre ton Getdata de la manière suivante :

'********** ENTÊTE + INFOS COPIER - SITUATION 1 **********
            For j = 2 To 9
                UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value
            Next j
            TextBox8 = Format(TextBox8, "yyyy/mm/dd")
            TextBox9 = Format(TextBox9, "yyyy/mm/dd")

...la suite sans changement.

A+

Merci beaucoup Galopin, j'apprécie.

Ça fonctionne bien, sauf quand je dois modifier à partir de mon userform vers ma feuille excel.

For j = 1 To 9
                Cells(emptyRow, j).Value = UserForm1.Controls("TextBox" & j).Value
            Next j

La date se transfert bien dans mon classeur sous le bon format, par exemple si j'ai écris 2014-03-08 dans ma textbox, je vais voir 2014-03-08 dans mon classeur. Sauf que au moment de reprendre cette information avec mon GetData et de la modifier, il me fait n'importe quoi... VRAIMENT...

Avec les chiffres du genre 2014-03-20, il semble reconnaitre que le 20 est la journée, mais dans mon exemple ci-dessus, il continue interchanger le mois et le jour...

Une petite idée?

Je retourne le fichier... Pour tester, voir à le faire avec le Code de police DCPH2020.

Merci!

162job.xlsm (139.24 Ko)

Les TextBox renvoie du Texte (pas une Date)

Essaie :

For j = 1 To 9
                Cells(emptyRow, j).Value = CDate(UserForm1.Controls("TextBox" & j))
Next j

Je n'ai pas testé sur ton fichier mais selon toute probabilité dans l'exemple que tu donnes ton affichage est aligné à gauche dans la feuille preuve que VBA n'a pas capté que tu voulais transférer une date et Excel ne reconnait pas cette donnée comme une date. (alors que les dates reconnues comme telles sont alignées à droite).

A+

Super!! Ça semble très bien fonctionner une fois intégré dans mon fichier. Merci beaucoup !!

He bien finalement... Non, ça ne marche pas si bien que çà...

Ça fonctionne quand j'essais avec une police existante, il me sort les dates dans le bon ordre. Par contre, si je change la date (Par exemple pour le #de dossier DCPH1010 si je modifie le 08 pour exemple 10, dans la textbox9, ça affiche tout croche...

Aussi, il me fait des erreurs quand j'essais d'ajouter un nouveau # de police, après avoir entrer la date dans Date effective, je clique sur sauvegarder/nouveau, et ça dit : Incompatibilité de type (Erreur d'exécution 13)...

Alors je suis toujours au même point... Quelqu'un à une idée?

Merci!

125job.xlsm (121.54 Ko)

Bonjour,

Dans ce fichier, à partir du bouton dans la feuille DBASE, le UserForm1 ne semble pas fonctionner.

Si je lance le USF depuis VBA et que le rentre un nouveau N° de dossier il y a une erreur lors de l'enregistrement dans Sub AddHeads

car : Tu mets

Cells(emptyRow, j).Value = CDate(UserForm1.Controls("TextBox" & j))

dans une boucle For

Or seuls les Controls 8 et 9 sont censés comporter une date... TextBox1 ayant un contenu alpha numérique provoque cette erreur incompatibilité de type car CDATE ne digère pas bien ce genre de donnée.

Autres commentaires en MP

A+

Bonsoir Galopin,

J'ai donc corrigé ce que tu m'indiquais par :

For j = 1 To 7
                Cells(emptyRow, j).Value = UserForm1.Controls("TextBox" & j).Value
            Next j
                Cells(emptyRow, 8).Value = CDate(UserForm1.Controls("TextBox" & 8))
                Cells(emptyRow, 9).Formula = "=Date(Year(H" & i + 1 & ")+1,Month(H" & i + 1 & "),Day(H" & i + 1 & "))"
                UserForm1.TextBox9.Value = Cells(i + 1, 9).Value
                TextBox9 = Format(TextBox9, "yyyy/mm/dd")

Malgré tout, quand je fais un nouveau # de dossier, j'entre la date dans l'ordre AAAA-MM-JJ dans TextBox8, en mettant à jour (en cliquant sur Sauvegarder / Nouveau) la date dans la TextBox9 se mets en format AAAA-JJ-MM... Et quand j'efface le # de dossier et le remet, alors les 2 dates (Textbox8 et 9) se mettent dans l'ordre AAAA-JJ-MM...

Une idée?

Tu as indiqué "Autres commentaires en MP"; mais je n'ai pas reçu de message privé... ?

Merci pour l'avancement, reste à régler l'autre bout, si tu peux m'aider? Merci d'avance

Bonjour,

As-tu été faire un petit tour sur le lien que je t'ai donné ?

Les dates c'est déjà bien assez complexe quand on utilise la notation standard (avec des ../../..) Quand tu seras une virtuose de cette notation, des conversions de String et du débogage, tu pourras peut-être essayer de bricoler avec des formats spécifiques.

Moi j'y renonce.

De toute façon, il faut que tu revoies ton projet sous un angle un peu plus orthodoxe. Pour l'instant tu es partie pour un Paris-Dakar en roller : Tu ne vas pas trouver beaucoup de monde pour te suivre...

Pour le coup j'ai fini par te le mettre ce MP. Bon ça va pas te remonter le moral, mébon...

A+

Oui, j'avais pris le temps de lire le lien que tu m'as envoyé, mais honnêtement, ça ne répondait vraiment pas à ma question... J'ai bien compris comment ça fonctionne les dates sous Excel (en tout cas, je pense avoir bien compris), mais le lien ne m'aidait aucunement à comprendre pourquoi entre ma feuille excel et mon userform, les 2 dates ne s'affichaient pas de la même façon...

Bref, aussi étrange que cela puisse parait... Je pense que je suis devenue, après une semaine de recherche intense, ce que tu appelles une "virtuose de cette notation" puisque... J'ai trouvé finalement mon problème!! Il y avait tout simplement une erreur dans mon code...

Je l'ai remplacé par

For j = 1 To 8
                Cells(emptyRow, j).Value = UserForm1.Controls("TextBox" & j).Value
            Next j
                Cells(emptyRow, 9).Formula = "=Date(Year(H" & i + 1 & ")+1,Month(H" & i + 1 & "),Day(H" & i + 1 & "))"
                TextBox9 = Format(Cells(i + 1, 9), "yyyy/mm/dd")

Et ça fonctionne désormais comme sur des roulettes.

Des erreurs de débutantes, je suppose... L'important, c'est que ce soit désormais réglé!

J'aime visé grand, même si je suis juste en roller, comme tu dis...

Mon code n'est certainement pas aussi parfait que celui d'un pro, mais tout fonctionne désormais... Je ne vois pas ce que je pourrais demander de plus, non?

Merci pour l'aide!! J'apprécie

Rechercher des sujets similaires à "format date textbox automatique"