Incompatibilité de type

Bonjour à toutes et à tous,

J'espère que quelqu'un va avoir la gentillesse de m'aider à résoudre ces problèmes.

Procédure Private Function VérifDateMenu() As Boolean, ligne If Weekday(tbDateMenu.Value, vbMonday) >= 6 Then : message d'erreur : incompatibilié de type.

Nom nature création menu : Menus midi retraite

Date menu : 15 août 2023

Outre le problème ci-dessus, le tbNomJourFérié ne se remplit pas.

MENUS 2023 (qui me sert de modèle, j'ai tenu compte du changement du nom des objets) : premier mot de passe : MENUS 2023 Deuxième mot de passe : MENUS 2023

D'avance merci pour votre aide.

Fichier MENUS.xlsm

11menus.xlsm (290.67 Ko)
8menus-2023.zip (505.15 Ko)

Bonjour,

essayez en spécifiant que la valeur est à prendre comme étant une date :

If Weekday(CDate(tbDateMenu.Value), vbMonday) >= 6 Then

@ bientôt

LouReeD

Bonjour,

EDIT : Salut Lou...

Sans avoir regardé les classeurs... Les TextBox renvoie du texte (même s'ils s'appellent tbDate...)

Donc ta fonction qui attend une date ne peut interprèter correctement ce que tu lui envoies.

Weekday("mardi 15 Aout 2023") ? Beurk c'est quoi ce binz !

Weekday("15/08/2023") ? Non mais on veut me faire prendre du texte pour une date... Pas glop !

Weekday(CDate("15/08/2023")) ? renverra surement 2... Si ton TextBox contient bien un texte convertible en date.

A+

Bonjour Galopin,

Alors pourquoi cela fonctionne dans MENUS 2023 ?

La formule de LouReed renvoie toujours le même message d'erreur.

La fonction de test est lancée à chaque changement de la valeur lors de la saisie de par cette fonction :
Private Sub tbDateMenu_Change()
Il faudrait peut-être faire un test de validité de la date une fois celle-ci valisée avec : Private Sub tbDateMenu_AfterUpdate()
ou bien : Private Sub tbDateMenu_Exit(ByVal Cancel As MSForms.ReturnBoolean)
comme cela la valeur date sera testée uniquement lorsque celle-ci correspondra (peut-être) à une date.
en effet avec le Change, le test peut être fait sur "01/" qui n'est pas une date...

@ bientôt

LouReeD

C'est la raison pour laquelle on utilise souvent des calendrier qui renvoient à coup sur des dates formatées.

Dans le cas présent je vois dans le post initial qu'il semble s'agir de la date du 15 Aout (avec accent circonflexe) peut être cet accent ne peut-il pas être interprété ?

A+

Bonjour Galopin,

Je viens de trouver la solution, que je souhaiterais pouvoir modifier afin que la date se présente ainsi : jeudi 15 août 2024.

Dans la procédure private sub tbdatemenu_mousedown, il faut supprimer les quatre premiers DDDD pour avoir d mmmm yyyy

Pour les deux solutions proposée par LouReed, message de 13h48, quelles seraient le texte complet des instructions à écrire ?

Une autre solution existe mais à condition que les modérateurs, les contributeurs, que les personnes qui répondent connaissent et aient cet outil : c'est d'utiliser dtPicker.

Rechercher des sujets similaires à "incompatibilite type"