Problème visual basic

Logiciel GMAO

a marqué ce sujet comme résolu.

Bonjour,

J’utilise actuellement un fichier avec un petit programme sous excel pour la gestion de contrôles réglementaire, j’ai un soucis lorsque je clique sur le bouton "tous contrôles et actions" cela m’affiche un message "erreur d’exécution '13' : incompatibilité de type" et quand je lance le débogage voici ce que j’ai:

acceuil prog.png
acceuil prog.png
impecran.png
impecran.png

Sauriez-vous m’aider à solutionner ce problème ?

Je précise que je n’y connais absolument rien en virtual basic :lol:

Merci d’avance ;)

Salut,

Tu obtiens cette erreur parce que la valeur retournée par xmoy ici ne peut pas être affectée à la variable de type double moyen.

En passant la souris sur les éléments en jaune, tu peux voir les valeurs, ce qui peut aider à comprendre. Tu peux aussi mettre un point d’arrêt dans la fonction xmoy (si tu fais F8 en jaune tu peux dérouler normalement) pour voir où ça pêche. J’émets l’hypothèse que le problème vient de la valeur tr qui lui est fournie.

Si tu as un peu de temps, voici une aide au débogage : https://zestedesavoir.com/billets/4433/deboguer-ses-macros-vba-dans-excel/

+1 -0

J’émets l’hypothèse que le problème vient de la valeur tr qui lui est fournie.

Si tu as un peu de temps, voici une aide au débogage : https://zestedesavoir.com/billets/4433/deboguer-ses-macros-vba-dans-excel/

Vk

Bonjour

Surement une bonne piste sachant que tr = .Cell(i, 1) est un Range … https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.cells (version anglaise car la version FR est ambiguë ! )

je ne sais pas ce que fais xmoy (ça ne semble pas être une fonction native) mais si c’est une moyenne alors un nombre semble plus approprié

par contre, je ne connaissais pas cette syntaxe (avec les :) mais pour moi, elle est à bannir ! :diable:

+0 -0

Surement une bonne piste sachant que tr = .Cell(i, 1) est un Range … https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.cells (version anglaise car la version FR est ambiguë ! )

DonKnacki

La lecture d’une cellule donne bien sa valeur, mais c’est vrai que la doc n’est pas très parlante :

Debug.Print (VarType(Sheets(1).Cells(1, 1))) ' 5 pour double

(par contre le comportement est différent avec les Range)

Je pense que c’est la valeur contenue dans cette cellule qui peut poser problème (vide ?)

par contre, je ne connaissais pas cette syntaxe (avec les :) mais pour moi, elle est à bannir ! :diable:

DonKnacki

Pareil, je trouve cette notation moins lisible aussi, mais apparemment ce n’est pas lui l’auteur du code, donc ça complique également sa compréhension ^^

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte