Fonction excel personnelle fonctionne seulement en mode 'pas à pas'

Davidc57

XLDnaute Occasionnel
Bonjour le forum,

Petit problème du vendredi soir !

Une fichier A contient une fonction personnalisée, placée dans un module.

Voici cette fonction :

Public Function IsRouge(a As Range) As Integer
If a.Cells.Interior.Color = 1967565 Then
IsRouge = 1
Else
IsRouge = 0
End If
End Function

Cette fonction teste la couleur d'une case en entrée et renvoi 1 si la couleur est 1967565 (Rouge), et 0 sinon.


Un programme du fichier A va ouvrir un fichier B, lequel contient des appels à la fonction IsRouge(). le problème est que le résultat est toujours 0 alosr qu'il y a bien des cases rouge dans mon fichier B ! Si je lance le programme en pas à pas ca fonctionne bien !

Là où je 'pète un cable' depuis 2 heures, c'est que mon fichier B est une copie d'un autre fichier (appelons le C) qui contient aussi des fonctiosn IsRouge(). B et C sont des fichiers similaires (que l'on appelle des modèles dans mon jargon pro). Ces deux modèles concernent des comptes clients différents mais sont tout à fait similaires !

Totu se passe bien avec le fichier C même en automatique mais je ne sais pas pourquoi ça bloque avec le fichier B. En tout cas puisque cela fonctionne avec le fichier C, j'en déduit que le problème ne vient pas du ficheir A (celui qui contient le programme principal qui ouvre les autres fichiers (B, C, ...) et qui contient aussi la fonction IsRouge().

Ha oui j'oubliais, le fichier A ouvre les autres fichiers (B, C, ...) et importe la feuille 'modèle' dans le fichier A.

Bon il est l'heure de couper mon PC et de penser à autre chose .... je retrouverai sûrement mon problème lundi matin mais peut-être aurai-je aussi le plaisir de lire ici des éléments de réponse.

Désolé de ne pas publier mes fichiers mais ils sont trop volumineux.

Cordialement,
David
 

Davidc57

XLDnaute Occasionnel
Re : Fonction excel personnelle fonctionne seulement en mode 'pas à pas'

Pour information, je m'en suis sorti en ajoutant les deux lignes suivantes :

Worksheets("Feuil1").EnableCalculation = False
Worksheets("Feuil1").EnableCalculation = True


Je ne comprend pas pourquoi je suis obligé de faire cela uniquement pour le cas du fichier B alors que pour les autres fichiers je ne le fait pas !

En tout cas mon problème est résolu.

Merci,
David
 

Papou-net

XLDnaute Barbatruc
Re : Fonction excel personnelle fonctionne seulement en mode 'pas à pas'

Bonjour Davidc57,

Difficile d'affirmer quoi que ce soit sans les fichiers sous les yeux, mais peut-être une piste :

As-tu essayé de recopier ta fonction IsRouge dans chacun de tes classeurs ?

Désolé de ne pouvoir t'en dire davantage.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 277
Messages
2 086 716
Membres
103 378
dernier inscrit
phdrouart