Je vous sollicite pour un problème auquel je ne comprends rien.
J'ai récupéré une macro qui permet, avec une MFC, de faire clignoter des cellules d'un tableau Excel quand il y a doublon.
Elle fonctionne parfaitement.
Quand je l'intègre dans mon classeur Excel, les doublons clignotent, mais aussi les cellules vides (très nombreuses). Ce qui fait que mon tableau ressemble à un sapin de Noël.
J'ai voulu anonymiser une copie de mon fichier pour vous le transmettre et j'ai donc supprimé des onglets et des instructions qui ne servent à rien. Or, maintenant, le problème ne se pose plus !!
Dans mon véritable classeur, j'ai 5 modules. Dans le module 1, j'ai copié ce code-là :
Code:
Option Explicit
Dim vNow As Variant
Public Sub Eclairage()
vNow = Now + TimeValue("00:00:01")
Application.OnTime vNow, "Eclairage"
ActiveWorkbook.Names.Add Name:="VarEclairage", RefersToR1C1:=1 - [VarEclairage]
End Sub
Public Sub ArrêtEclairage()
Application.OnTime EarliestTime:=vNow, _
Procedure:="Eclairage", Schedule:=False
ActiveWorkbook.Names.Add Name:="VarEclairage", RefersToR1C1:=1
End Sub
et dans ThisWorkBook, j'ai copié ceci :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ArrêtEclairage
End Sub
Private Sub Workbook_Open()
Eclairage
End Sub
Il n'y a donc, a priori, pas de différence entre les deux fichiers. Et pourtant, ça marche d'un côté et pas de l'autre.
S'agissant de la MFC, elle est identique entre le fichier Test ci-joint et mon vrai fichier.
Je ne sais pas si quelqu'un peut m'aider, mais ce serait très gentil de me sortir de ce truc auquel je ne comprends plus rien !
Apres cette modification fonctionnement correct sur le fichier test
Code:
Public Sub Eclairage()
vNow = Now + TimeValue("00:00:01")
Application.OnTime vNow, "Eclairage"
ActiveWorkbook.Names.Add Name:="VarEclairage", RefersTo:="=" & 1 - [VarEclairage]
End Sub
Avant de te répondre, j'ai essayé de comprendre ce qui se passait.
J'ai constaté (mais je ne l'explique pas) que quand la cellule M2 est vide, la macro fonctionne correctement.
Mais, comme c'est le point d'entrée de ma base (qui fonctionne avec un userform et des RECHERCHEV), il faut qu'il y ait une valeur dedans.
Comme j'ai construit tout ça avec mes maigres compétences en la matière, j'ai dû faire bugger quelque chose quelque part, mais pas moyen de savoir où.
Peut-être serait-il possible de contourner le problème en modifiant la MFC pour lui dire que si la cellule est vide ou égale à 0, il ne faut pas appliquer la MFC ?