TabBDMenus et TabBDMenusMidiRetraite : date du menu dans un ordre anormal

Bonjour,

J'y ai jeté un oeil, et toutes modifications du format de la textbox "tbDateMenu" amènent des complications par la suite. Alors pour faire simple et pour ne rien toucher au code existant, j'ai simplement ajouté une autre textbox nommée "tbJour" mise à la gauche de "tbDateMenu", ainsi cela ne vient pas perturber le bon déroulement de la macro.

Dans la macro "Private Sub tbDateMenu_Change()" j'ai ajouté à la fin la ligne suivante:

    tbJour = Format(tbDateMenu, "dddd")

il vous suffira de sélectionner le jour dans la textbox verte

budgets
4menus-2023-smp.zip (385.51 Ko)

Cdlt

Edit;: autre présentation: la "tbJour" est cachée par "tbDateMenu", elle se découvre après avoir sélectionner la date, ainsi vous conservez l'apparence d'origine.

11menus-2023-smp-2.zip (387.11 Ko)

Bonjour Arturo83,

Merci. Cela me convient parfaitement.

Merci de me dire quelles modifications que je dois faire tant pour le formulaire que pour le code pour arriver à votre résultat. J'ai vu : vous avez créé un tbJour par dessus le tbDateMenu : c'est l'instruction qui figure dans la procédure tbDateMenu_Change qui permet cette création, d'où l'inutilité de le créer manuellement ou obligation de le créer manuellement également ?

Merci de me dire quelles modifications que je dois faire tant pour le formulaire que pour le code pour arriver à votre résultat. J'ai vu : vous avez créé un tbJour par dessus le tbDateMenu : c'est l'instruction qui figure dans la procédure tbDateMenu_Change qui permet cette création, d'où l'inutilité de le créer manuellement ou obligation de le créer manuellement également ?

If suffit de faire d'ajouter une TextBox (de préférence de la même dimension que la textBox "tbDateMenu") de faire un clic-droit et de sélectionner "Arrière plan".par la suite la glisser au niveau de la textBox "tbDateMenu".

A l'ouverture du formulaire, La macro positionne la textBox "tbDateMenu" de telle manière quelle masque la nouvelle textbox, puis lors de la saisie de la date, La macro positionne la textBox "tbDateMenu" à droite de textBox "tbDateMenu" , pour la rendre visible.

*********************************************************************************************************

Les 2 lignes à ajouter juste avant le "End Sub" de la macro "Sub tbDateMenu_Change"

    tbJour = Format(tbDateMenu, "dddd")
    tbDateMenu.Left = 162

et cette ligne en première position dans la macro "Sub UserForm_Activate()"

    tbDateMenu.Left = 90

Les chiffres que vous indiquez(162, 90), à quoi correspondent-ils ? Pourquoi les deux chiffres ne sont-ils pas identiques puisqu'il s'agit du left du même tb ? J'ai vu pour le 90 mais je n'ai trouvé aucun 162 pour le tbDateMenu dans ses propriétés.

90= distance du bord gauche de la textbox "tbDateMenu" par rapport au bord gauche du formulaire, c'est la même position pour la textbox "tbJour", donc à l'ouverture du formulaire, cette dernière est recouverte par la textbox "tbDateMenu" puisqu'elles sont sur le même bord gauche et ont sensiblement la même largeur.

162 = distance du bord gauche de la textbox "tbDateMenu" par rapport au bord gauche du formulaire, donc un décalage de 72 (longueur légèrement supérieure à la largeur de la textbox "tbDateMenu") par rapport à la position initiale, ce qui permet de laisser entrevoir la textbox "tbJour" .

c'est tout simplement un jeu de cache-cache, un coup je te vois, un coup je te vois plus.

Est ce plus clair?

Pour le 90 oui. Pour le 162, si j'ai bien compris, ile faut prendre le left du tbDateMenu auquel il faut obligatoirement ajouter 72 ?

Dans mon fichier MENUS 2024, le left est à487,95. Le 90 sera remplacé par 487,95 et le 162 sera transformé en 559,95 ?

A l'ouverture du formulaire, il faut superposer les 2 textboxes, et lors de la sélection de la date, il faut faire riper la textbox "tbDateMenu' de telle manière à laisser visible la textbox "tbJour". La valeur du ripage doit être au moins égale à la largeur de la textBox "tbJour".

Ce qui est important c'est de bien gérer l'ordre des textboxes, la textbox "tbJour en "Arrière plan", alors que la textbox "tbDatemenu" doit être en "Avant plan", sinon vous ne pourrez pas sélectionner la date.

Après, vous affectez les "valeurs de gauche" qui vous conviennent.

D'avance merci de procéder aux rectifications nécessaires pour que les tbDateMenu et tbJour apparaissent convenablement ou de me dire les gauche que je dois employer. Par tâtonnements, voilà ce que cela donne. Dans la fenêtre Propriétés, pour un objet donné, peut-on voir si celui-ci est au premier plan ou en arrière plan ? Si oui, comment procéder ?

6menus-2024-smp.zip (359.76 Ko)

Dans "Private Sub UserForm_Activate()", en première ligne (j'ai arrondi à 488):

    tbDateMenu.Left = 488

Dans "Private Sub tbDateMenu_Change()", avant le "End Sub":

    tbJour = Format(tbDateMenu, "dddd")
    tbDateMenu.Left = 545

Vous l'aviez fait correctement.

OK; Et pour les premier et arrière plan ?

OK; Et pour les premier et arrière plan ?

Je l'ai déjà indiqué à 10h52 mais peut-être pas assez explicite, je vous fait une vidéo c'est plus simple à comprendre.

budgets

Donc dans Propriétés, il n'y a pas une propriété simple ou à choix multiples qui permet de voir si un objet est en premier plan ou pas ? À la fin de votre vidéo, il y a la boîte d'outils, onglet Contrôles : cela peut-il me servir ?

Autre problème à venir: Je pense que pour vous, il est plus facile de résoudre un problème avec un formulaire complet que de travailler sans formulaire

Bonjour,

Donc dans Propriétés, il n'y a pas une propriété simple ou à choix multiples qui permet de voir si un objet est en premier plan ou pas ? Non

À la fin de votre vidéo, il y a la boîte d'outils, onglet Contrôles : cela peut-il me servir ?, Oui, si vous comptez ajouter ou modifier des éléments, sinon ça ne sert à rien. Elle apparaît sur la vidéo, mais elle aurait pu tout aussi bien ne pas y être, ce qui ne changeait en rien sur la manière de procéder.

Autre problème à venir: Je pense que pour vous, il est plus facile de résoudre un problème avec un formulaire complet que de travailler sans formulaire, Il est surtout plus important de travailler avec un fichier complet, raison de plus s'il y a des formulaires.

Cdlt

Bonjour Arturo83,

J'ai créé une nouvelle question : Période légumes vendredi samedi.

Bonjour,

J'ai créé une nouvelle question : Période légumes vendredi samedi.

Pourriez-vous développer?

Feuille accueil : clic sur création menus

Formulaire UF02_CréationMenus : Nom nature création menu : clic sur Menu journalier, Date menu : 06 janvier 2024, Nom légume : Pâtes à la sauce tomates

1) Le code légume est erroné : il sort LMR09 alors qu'il devrait sortir LWS01

2) Nom période légume : il sort Lundi à vendredi midis alors que la bonne période est Samedi midi et soir

3) code nom période légume : il sort PAM05 alors que la bonne référence est pam11

Pour le vendredi, c'est pareil, il sort les références de Midi retraite au lieu des références du vendredi. Pour le dimanche, le même problème se pose, à ceci près qu'il prend la référence de LSLM au lieu de celle du dimanche.

Mille excuses si j'ai déjà exposé le problème mais je ne me souviens pas de son intitulé et des réponses éventuelles reçues.

D'avance merci pour votre aide. Bonnes journée et continuation à toutes et à tous. Prenez bien soin de vous.

Cordialement.

10menus-2024-smp.zip (420.53 Ko)

Vous pouvez me répondre ici ou à partir du nouveau message dont je vous ai indiqué le titre dans mon précédent message.

Les références période sont partout erronées dès qu'un légume est présent à la fois en menu midi retraite et dans un menu soir

Rechercher des sujets similaires à "tabbdmenus tabbdmenusmidiretraite date menu ordre anormal"