Macro fonctionne de manière aléatoire

Bonjour,

J'utilise une même macro que j'appelle soit lorsque l'on sélectionne la feuille, soit lorsque l'on change le contenu d'une cellule bien précise.

Lorsqu'elle est lancée via l'évènement worksheet.activate, tout fonctionne bien.

Lorsqu'elle est lancée via l'évènement worksheet.change, il y a de gros soucis.

Du coup, j'ai isolé la feuille incriminée dans un classeur vierge avec toutes les macros nécessaire. Hélas dans ce classeur vierge, tout fonctionne correctement !!

Dans mon autre classeur, en mode débogage, j'ai remarqué qu'une variable déclarée en integer prend tout d'un coup une erreur type variant. Voir fichier joint avec variable "CaAnnée".

Comme je suis complètement largué, y aurait-il quelqu'un pour me donner une piste afin de rectifier cette erreur que je ne comprends pas !

Si vous avez besoin du classeur en mode complet, sa taille est de 523 Ko en zip.

D'avance merci a tous ceux qui empêcherons de faire griller ma petite cervelle sur ce @§%#* de problème je me suis emporté

20test.zip (79.71 Ko)

Salut,

Je n'arrive pas a reproduire l'erreur mais j'ai une remarque a te faire au niveau de la declaration des variables.

Dim Fintableau, Ligne, Reliquat, CaAnnée, Resul, Tempo As Integer

revient a dire

Dim Fintableau as Variant
Dim Ligne as Variant
Dim Reliquat as Variant
Dim CaAnnée as Variant
Dim Resul as Variant
Dim Tempo As Integer

C'est pour cela qu'en debug tu as un variant sur CaAnnée entre autre.

Pour ton probleme tu dis toi meme qu'avec ce classeur tu n'as pas de probleme donc

pas facile d'identifier le probleme.

++

Bon, ben visiblement je fais un erreur de débutant. Je pensais que ma manière de faire permettait de déclarer d'un coup les variables de même type.

Bon, il ne me reste plus qu'a essayé en modifiant les déclarations. Mais je ne pense pas que cela vienne de là sinon, cela ne fonctionnerait pas du tout.

Merci pour l'info.

Je ne pense pas non plus que ton probleme vienne de la.

Contact moi en mp si tu veux me faire passer ton fichier complet.

++

Je reviens vers vous pour ce sujet avec beaucoup de compléments d'informations.

Minick a beaucoup travaillé sur le problème et m'avais trouvé une solution qui malheureusement fait planté une autre macro (je lui ai laissé un message pour cette évolution non prévue).

Nous avons pu isoler ce qui fait planter ma macro; c'est la fonction ci dessous :

Function SommeCouleurFond(champ As Range, couleurFond)

Application.Volatile

Dim c, temp

temp = 0

For Each c In champ

If c.Interior.ColorIndex = couleurFond Then

If IsNumeric(c.Value) Then temp = temp + c.Value

End If

Next c

SommeCouleurFond = temp

End Function

Lorsque cette fonction est supprimé, tout fonctionne bien. Et sur la feuille concernée, la macro est appelé (worsheet_change) lorsque l'on change la valeur d'une cellule. La valeur de la cellule est en liste de validation. Si j'enlève cette liste, tout fonctionne très bien (par exemple la valeur CA en liste de validation plante; la même valeur en mode "normal" ...RAS). La même macro fonctionne très bien lorsqu'elle est appelée via worksheet_activate (lorsque je viens sur la feuille concernée, aucun soucis).

Sachant aussi que sur une version d'excel plus évolué que celui de mon boulot (Excel 2003) il n'y a apparemment pas de bug , quelqu'un aurait-il une piste, un début d'idée voir un soupçon de solution pour m'aider à comprendre ce qui ne va pas.

Rechercher des sujets similaires à "macro fonctionne maniere aleatoire"