Incompatibilité de type

Résolu/Fermé
BUDGETS Messages postés 1337 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 4 mai 2024 - Modifié le 5 oct. 2021 à 12:15
BUDGETS Messages postés 1337 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 4 mai 2024 - 9 oct. 2021 à 22:06
Bonjour à toutes et à tous,

Effacer feuille MMR, Générer MMR : tout est ok, cela fonctionne correctement sans message d'erreur.
Effacer feuille MJ : tout est ok, et cela fonctionne correctement sans message d'erreur. Générer MJ : cela ne fonctionne pas : erreur : incompatibilité de type (module MO03_Génération, procédure GénérerMJ, instruction de Si c'est un menu MJ; quand je passe la souris sur cette ligne (comme me l'a conseillé de faire ALS35 lorsque j'ai une erreur, actuellement il reste muet aux messages que je lui envoie, d'où mon recours au forum), rien ne se passe. Sauf erreur ou omission de ma part, le nom de chaque tableau mensuel est correct (à ce sujet, si j'appelle mon tableau TabMJ01, TabMJ02, etc, j'ai une erreur, je ne me souviens plus de laquelle; si j'enlève le zéro, le message d'erreur disparaît : quels sont les critères pour nommer un tableau ?). J'ai rectifié chez moi le nom du tableau du mois de janvier.
D'avance merci pour votre aide et votre (vos) réponse(s)
https://www.cjoint.com/c/KJfj1fZRiIq


1 réponse

ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
5 oct. 2021 à 14:19
Bonjour BUDGETS,

Vérifie au moins que chaque instruction est bien conforme à celle du fichier qui te sert de modèle, et en particulier celle où se produit l'erreur.

Cordialement
0
BUDGETS Messages postés 1337 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 4 mai 2024
5 oct. 2021 à 14:50
Bonjour ALS35,

J'espère que tu vas bien; Tu n'as pas été malade car je ne recevais rien de toi.
Le fichier qui me sert de modèle n'était pas prévu pour les formulaires. Dans le fichier modèle, les feuilles étaient désignées par sh. Ici, elles sont désignées par fl suivi d'un numéro et d'un nom.
Fichier modèle :
'Si c'est un menu MJ
If shBDMenus.Range("TableMenus[Code menu]").Item(LigneBD) = "CD01" Then

Dans mon fichier :
'Si c'est un menu MJ
If FL08_BDMEN.Range("TBDMenus[NLD]") = "Menu journalier" Then
si je tape la même instruction que dans le fichier modèle avec item(ligneBD), cela me sort une erreur (je ne me souviens pas de laquelle, peut-être un global qui échoue).
J'ai essayé en vain différentes instructions, différents dim sans aucun succès.
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139 > BUDGETS Messages postés 1337 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 4 mai 2024
5 oct. 2021 à 16:39
Tu fais une boucle avec l'indice I, donc .Item(I).
0
BUDGETS Messages postés 1337 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 4 mai 2024 > ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024
5 oct. 2021 à 16:55
En allant faire mes achats du mardi, dans la rue, j'ai pensé à quelque chose :
Dans le fichier modèle, l'instruction demande un code avec chiffres (CD01"). Dans mon fichier, je demande une chaine de caractères (Menu journalier). Comme les deux dim sont en integer ou en long, il y a donc incompatibilité de type. Donc deux solutions : transformer l'un des dim en string (mais lequel, j'opterai pour le I), soit garder les deux dim comme ils sont déclarés actuellement, et modifier l'instruction de telle manière que ce soit un code (LD02) avec la colonne CLD
0
BUDGETS Messages postés 1337 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 4 mai 2024 > ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024
Modifié le 5 oct. 2021 à 22:00
La feuille BD menus et la feuille Menus journaliers ont les mêmes renseignements d'enregistrés.
Effacer feuille MJ s'exécute bien avec cet inconvénient que tous les tableaux, excepté celui de Janvier (TabMJ1), sont également effacés. Est-ce la raison pour laquelle GénérerMJ ne s'exécutes pas ? Je vais allez voir dans le fichier modèle pour voir si tous les tableaux disparaissent. Résultat : les tableaux restent et la génération s'opère correctement. tests fait sur Nouveaux menus, Menus midi retraite). Donc, je dois revoir le code Effacer feuille MJ de mon fichier avec le code de lEffacer menu, feuille menus midi retraite du fichier nouveaux menus. J'attends avec impatience ta réponse qui va certainement contenir une engueulade, certainement justifiée. Tu vas pouvoir effectuer des tests pour vérifier mes dires. Je crois avoir trouvé : dans la procédure EffacerMenusJournaliers, toutes les cellules sont avec ClearContents (la procédure avait été écrite pour une feuille qui ne contenait pas de tableau structuré), ceci expliquant cela. Donc je vais devoir comparer avec Menus midi retraite du fichier Nouveaux menus. Une dernière chose : certes, je ne suis pas un expert, et je le reconnais, mais un compliment peut, de temps en temps, m'être fait tout de même car j'essaie de comprendre ce qui se passe et ici c'est le cas. D'avance merci pour ton aide et ton éventuel compliment.
https://www.cjoint.com/c/KJftVh2L53q
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139 > BUDGETS Messages postés 1337 Date d'inscription samedi 19 juillet 2014 Statut Membre Dernière intervention 4 mai 2024
6 oct. 2021 à 14:25
Bonjour BUDGETS,

Effectivement, enfin bien vu, la procédure d'effacement était un problème. Mais si tu faisais correctement les tests à chaque procédure que tu écris, tu aurais du le voir depuis longtemps ! C'est une première étape.
Tu gagnerais également à faire des compilations à chaque modif de code.

Cordialement
0