Incompatibilité de type

Résolu/Fermé
BUDGETS Messages postés 1333 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 24 novembre 2023 - 31 oct. 2016 à 22:12
BUDGETS Messages postés 1333 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 24 novembre 2023 - 11 nov. 2016 à 13:06
Bonjour,
J'ai quarante fichiers dont certains sont destinés à servir de liste de choix dans d'autres fichiers;ces derniers servent également de liste de choix pour le fichier Menus.xltm dont les données enregistrées iront dans le fichier Classeur menus.xltm. En ce qui concerne, les listes de choix, tout fonctionne correctement (ce travail avait fait l'objet d'une précédente question : transfert des données d'un fichier dans un autre autant que je me souvienne).
Mintenant, le problème se situe dans le fichier Menus.xltm qui comprend un module (listemenusjournaliers) qui regroupe toutes les données avec leur type (date, string, byte, etc.) et d'un UserForm frmListemenusjournaliers qui comprend des zones de liste modifiable (cbo), des zone de texte (une pour la date, une pour le numéro du menu, quatre pour les quantités), deux boutonds de commande (ajout menus journaliers et retour).
Les quantités sont des nombres à deux chiffres après la virgule;le numéro du menu est un chiffre sans virgule et sans rien après la virgule évidemment. Dans le classeur menus.xltm, il a deux feuilles (Récapitulatif menus, Menus dont une colonne commune (Date du menu) est formatée sous la forme Date (Lundi 31 octobre 2016).) .
Dans le fichier Menus.xltm; il est prévu un appel à Créermenusjournaliers et un autre à Remplacermenusjournaliers (call Créermenusjournaliers suivi de la liste de tout les objets de l'UserForm, chacun suivi de .value, call Remplacermenusjurnaliers suivi de la liste de tous les objets de l'UserForm, chacun suivi de .value). À l'exécution du programme, pour les outils de l'UserForm concerné, la liste des choix possibles s'affiche correctemnt, et quand je clique sur Ajoutmenujournalier, j'ai un message d'erreur "Incimpatibilité de typé" et le débogage entoure la procédure publique Créermenusjournaliers (qui est suivi du nom des outils de l'UserForme sans le préfixe : donc pas de cbo, pas de txt, etc). Je suis autodidacte en programmation et je n'ai malheureusement pas la science infuse et je ne comprends rien au message d'erreur.
Votre aide me serait très précieuse. D'avance, je vous en remercie.
Le cas échéant, quelque quarante fichiers compressés attendent d'être envoyés à qui le demandera (certainement en plusieurs fois).
Encore merci pour votre aide précieuse. Bonnes soirée et continuation.


29 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
31 oct. 2016 à 23:51
Bonjour,

"Incompatibilité de type" se produit lorsqu'on tente d'affecter une variable avec une valeur de type différent de celui déclaré pour cette variable (par exemple : affecter une valeur de type String à une variable déclarée comme Long), et uniquement dans ce cas.

Pour éliminer toute ambigüité, il est préférable de déclarer toutes les variables utilisées, et de préférence avec le bon type de variable (plutôt que tout déclarer comme Variant).
Pour être certain de ne pas en oublier, il suffit de commencer chaque module par
Option Explicit
.

Si tu as déjà appliqué ces précautions, il est probable qu'il faille déclarer la variable concernée comme Variant, c'est le seul type qui accepte tous les autre (penser au Set lorsqu'on affecte un objet à un Variant).

D'autre part, pour faciliter le débogage, il est préférable de mettre un maximum de procédures dans des modules standards plutôt que dans des modules de feuilles.
0