Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA Macro "Call" ne prend pas en compte la condition "If"

17 réponses
Avatar
raphael-diaz
Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un document :

Private Sub Worksheet_Deactivate()
If Not ActiveSheet.Range("marqueur") Is Nothing Then
If ActiveSheet.Range("marqueur") = "O" Then
MsgBox "Fonction appelée"
Call FonctionActive
End If
End If
End Sub

Mon but est d'activer la macro FonctionActive() seulement quand la cellule avec le nom défini "marqueur" est égale à "O". Cependant quand j'execute le code, le programme m'affiche bien le MsgBox quand les conditions sont remplies mais execute dans tous les cas et qu'elle que soit la valeur de marqueur la macro FonctionActive comme si Call ne prenait pas en considération la condition If... Pour info la macro FonctionActive est dans un autre fichier lié au mien grace au référence (Outils->références).

10 réponses

1 2
Avatar
LSteph
Bonjour,

Attention en déactivate ainsi écrit activesheet est celle sur laquelle
tu arrives et non pas celle dont tu pars!!!!

Sinon.
N'aurais tu pas quelquepart ailleurs dans ce projet une autre
procèdure évennementielle


Cordialement.

--
LSteph

On 7 fév, 10:43, raphael-diaz wrote:
Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un document :

Private Sub Worksheet_Deactivate()
    If Not ActiveSheet.Range("marqueur") Is Nothing Then
        If ActiveSheet.Range("marqueur") = "O" Then
            MsgBox "Fonction appelée"
            Call FonctionActive
        End If
    End If
End Sub

Mon but est d'activer la macro FonctionActive() seulement quand la cellul e avec
le nom défini "marqueur" est égale à "O". Cependant quand j'execute le code, le
programme m'affiche bien le MsgBox quand les conditions sont remplies mai s
execute dans tous les cas et qu'elle que soit la valeur de marqueur la ma cro
FonctionActive comme si Call ne prenait pas en considération la conditi on If...
Pour info la macro FonctionActive est dans un autre fichier lié au mien grace au
référence (Outils->références).
Avatar
raphael-diaz
LSteph a écrit le 07/02/2011 à 11h29 :
Bonjour,

Attention en déactivate ainsi écrit activesheet est celle sur
laquelle
tu arrives et non pas celle dont tu pars!!!!

Sinon.
N'aurais tu pas quelquepart ailleurs dans ce projet une autre
procèdure évennementielle


Cordialement.

--
LSteph

On 7 fév, 10:43, raphael-diaz wrote:
Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un document
:

Private Sub Worksheet_Deactivate()
    If Not ActiveSheet.Range("marqueur") Is Nothing Then
        If ActiveSheet.Range("marqueur") =
"O" Then
            MsgBox "Fonction
appelée"
            Call FonctionActive
        End If
    End If
End Sub

Mon but est d'activer la macro FonctionActive() seulement quand la cellul e
avec
le nom défini "marqueur" est égale à
"O". Cependant quand j'execute le code, le
programme m'affiche bien le MsgBox quand les conditions sont remplies mai s
execute dans tous les cas et qu'elle que soit la valeur de marqueur la ma cro
FonctionActive comme si Call ne prenait pas en considération la conditi
on If...
Pour info la macro FonctionActive est dans un autre fichier lié au mien
grace au
référence (Outils->références).




Comme je le disais ma macro fonctionne dans le sens où les conditions sont validées et testées avec une MsgBox.
En fait dès que j'utilise la macro "Call" elle est appelée en 1er, au démarrage de Worksheet_Deactivate . C'est un probleme lié au fichier qui sert de référence. Si celui ci est absente j'ai le message d'erreur suivant : "Erreur de complilation : Projet ou bibliotheque introuvable".
Cela est embetant car mon but est justement de tester si le fichier est existant et si il est existant j'active ma macro. L'existance du fichier est validé par la cellule "marqueur "mais je viens de me rendre compte que j'aurais pu etre utiliser ce code :

Private Sub Worksheet_Deactivate()
Dim Fichier As String
Fichier = Dir("C:Program FilesMicrosoft OfficeOFFICE11XLSTARTreference.xla")
If Fichier <> "" Then 'le fichier existe
Call CreateVersionListOnBeforeRightClickEvent(Target)
Else
MsgBox "Le fichier " & Fichier & " est inexistant" 'le fichier n'existe pas
End If
End Sub

Dans tous les cas mon Call est appelé dès le début de la macro...
Avatar
LSteph
...je redmets au cas où la question soit bien celle du premier message


''''''''''
Attention en déactivate ainsi écrit activesheet est celle sur laquelle
tu arrives et non pas celle dont tu pars!!!!

Sinon.
N'aurais tu pas quelquepart ailleurs dans ce projet une autre
procèdure évennementielle
'''''''''''
....ton second post évoque un autre sujet dans un contexte légèrement
différent et ne donne pas de retour sur cette première suggestion.

Point commun toutefois les éléments connexes sont tout aussi opaques
FonctionActive ou CreateVersionListOnBeforeRightClickEvent(Target)

@+ si tu en dis plus et si le sujet ne change pas .

Cordialement.

--
LSteph


On 7 fév, 11:53, raphael-diaz wrote:
LSteph a écrit le 07/02/2011 à 11h29 :

> Bonjour,

> Attention en déactivate ainsi écrit activesheet est celle sur
> laquelle
> tu arrives et non  pas celle dont tu pars!!!!

> Sinon.
> N'aurais tu pas quelquepart ailleurs dans ce projet une autre
> procèdure évennementielle

> Cordialement.

> --
> LSteph

> On 7 fév, 10:43, raphael-diaz  wrote:
>> Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un docum ent
>>  :

>> Private Sub Worksheet_Deactivate()
>>     If Not ActiveSheet.Range("marqueur") Is Nothing Then
>>         If ActiveSheet.Range("marqueur") =
>> "O" Then
>>             MsgBox "Fonction
>> appelée"
>>             Call FonctionActive
>>         End If
>>     End If
>> End Sub

>> Mon but est d'activer la macro FonctionActive() seulement quand la cel lul e
>> avec
>> le nom défini "marqueur" est égale à
>> "O". Cependant quand j'execute  le code, le
>> programme m'affiche bien le MsgBox quand les conditions sont remplies mai s
>> execute dans tous les cas et qu'elle que soit la valeur de marqueur la ma
cro
>> FonctionActive comme si Call ne prenait pas en considération la cond iti
>> on If...
>> Pour info la macro FonctionActive est dans un autre fichier lié au m ien
>>  grace au
>> référence (Outils->références).

Comme je le disais ma macro fonctionne dans le sens où les conditions s ont
validées et testées avec une MsgBox.
En fait dès que j'utilise la macro "Call" elle est appelée en 1er, au démarrage
de Worksheet_Deactivate . C'est un probleme lié au fichier qui sert de
référence. Si celui ci est absente j'ai le message d'erreur suivant : "Erreur de
complilation : Projet ou bibliotheque introuvable".
Cela est embetant car mon but est justement de tester si le fichier est
existant et si il est existant j'active ma macro. L'existance du fichier est
validé par la cellule "marqueur "mais je viens de me rendre compte que j'aurais
pu etre utiliser ce code :

Private Sub Worksheet_Deactivate()
  Dim Fichier As String
    Fichier = Dir("C:Program FilesMicrosoft
OfficeOFFICE11XLSTARTreference.xla")
    If Fichier <> "" Then 'le fichier existe
            Call CreateVersionListOnBeforeRightClickEvent(Tar get)
    Else
        MsgBox "Le fichier " & Fichier & " est inexistant" 'le fi chier n'existe
pas
    End If
End Sub

Dans tous les cas mon Call est appelé dès le début de la macro...
Avatar
raphael-diaz
LSteph a écrit le 07/02/2011 à 12h37 :
...je redmets au cas où la question soit bien celle du premier message


''''''''''
Attention en déactivate ainsi écrit activesheet est celle sur
laquelle
tu arrives et non pas celle dont tu pars!!!!

Sinon.
N'aurais tu pas quelquepart ailleurs dans ce projet une autre
procèdure évennementielle
'''''''''''
....ton second post évoque un autre sujet dans un contexte
légèrement
différent et ne donne pas de retour sur cette première
suggestion.

Point commun toutefois les éléments connexes sont tout aussi
opaques
FonctionActive ou CreateVersionListOnBeforeRightClickEvent(Target)

@+ si tu en dis plus et si le sujet ne change pas .

Cordialement.

--
LSteph


On 7 fév, 11:53, raphael-diaz wrote:
LSteph a écrit le 07/02/2011 à 11h29 :

> Bonjour,

> Attention en déactivate ainsi écrit activesheet est celle
sur
> laquelle
> tu arrives et non  pas celle dont tu pars!!!!

> Sinon.
> N'aurais tu pas quelquepart ailleurs dans ce projet une autre
> procèdure évennementielle

> Cordialement.

> --
> LSteph

> On 7 fév, 10:43, raphael-diaz  wrote:
>> Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un
docum ent
>>  :

>> Private Sub Worksheet_Deactivate()
>>     If Not ActiveSheet.Range("marqueur") Is
Nothing Then
>>         If
ActiveSheet.Range("marqueur") =
>> "O" Then
>>             MsgBox "Fonction
>> appelée"
>>             Call FonctionActive
>>         End If
>>     End If
>> End Sub

>> Mon but est d'activer la macro FonctionActive() seulement quand la
cel lul e
>> avec
>> le nom défini "marqueur" est égale à
>> "O". Cependant quand j'execute  le code, le
>> programme m'affiche bien le MsgBox quand les conditions sont remplies
mai s
>> execute dans tous les cas et qu'elle que soit la valeur de marqueur
la ma
cro
>> FonctionActive comme si Call ne prenait pas en considération
la cond iti
>> on If...
>> Pour info la macro FonctionActive est dans un autre fichier
lié au m ien
>>  grace au
>> référence (Outils->références).

Comme je le disais ma macro fonctionne dans le sens où les conditions s
ont
validées et testées avec une MsgBox.
En fait dès que j'utilise la macro "Call" elle est
appelée en 1er, au démarrage
de Worksheet_Deactivate . C'est un probleme lié au fichier qui sert de
référence. Si celui ci est absente j'ai le message d'erreur
suivant : "Erreur de
complilation : Projet ou bibliotheque introuvable".
Cela est embetant car mon but est justement de tester si le fichier est
existant et si il est existant j'active ma macro. L'existance du fichier est
validé par la cellule "marqueur "mais je viens de me rendre
compte que j'aurais
pu etre utiliser ce code :

Private Sub Worksheet_Deactivate()
  Dim Fichier As String
    Fichier = Dir("C:Program FilesMicrosoft
OfficeOFFICE11XLSTARTreference.xla")
    If Fichier <> "" Then 'le fichier existe
            Call
CreateVersionListOnBeforeRightClickEvent(Tar get)
    Else
        MsgBox "Le fichier " & Fichier &
" est inexistant" 'le fi chier n'existe
pas
    End If
End Sub

Dans tous les cas mon Call est appelé dès le début de la
macro...




Pour "activesheet" c'est ok, j'ai comprit ton idée et je te remercie mais cela ne résout malheuresement pas mon probleme de fond...
Pour ta question j'ai en effet plusieurs procédures évenementielles: Worksheet_BeforeRightClick, Worksheet_Change et Worksheet_Deactivate.
Elles appellent tous avec "CALL" et un parametre la meme référence présente dans le fichier séparé C:Program FilesMicrosoft OfficeOFFICE11XLSTARTreference.

Mon but et de chercher à savoir si le fichier de référence est présent dans le répertoire (avec un marqueur indicateursur la feuille ou comme je l'ai présenté avec Fichier = Dir("C:Program FilesMicrosoft OfficeOFFICE11XLSTARTreference.xla"). Si le fichier n'est pas présent (par exemple quand je donne le fichier à des clients) je n'appel pas call comme ca ils n'ont pas le beug excel et le message d'erreur ERREUR DE COMPILATION : Projet ou bibliotheque introuvable.
Cependant et quelques soit les conditions de test, le message d'erreur revient comme si call passait en 1er alors que mes conditions s'ont bonnes quand je les tests avec des MsgBox.
J'espere avoir été clair. Merci beaucoup pour le temps que tu passes pour m'aider.
Sincérement
Avatar
raphael-diaz
LSteph a écrit le 07/02/2011 à 12h37 :
...je redmets au cas où la question soit bien celle du premier message


''''''''''
Attention en déactivate ainsi écrit activesheet est celle sur
laquelle
tu arrives et non pas celle dont tu pars!!!!

Sinon.
N'aurais tu pas quelquepart ailleurs dans ce projet une autre
procèdure évennementielle
'''''''''''
....ton second post évoque un autre sujet dans un contexte
légèrement
différent et ne donne pas de retour sur cette première
suggestion.

Point commun toutefois les éléments connexes sont tout aussi
opaques
FonctionActive ou CreateVersionListOnBeforeRightClickEvent(Target)

@+ si tu en dis plus et si le sujet ne change pas .

Cordialement.

--
LSteph


On 7 fév, 11:53, raphael-diaz wrote:
LSteph a écrit le 07/02/2011 à 11h29 :

> Bonjour,

> Attention en déactivate ainsi écrit activesheet est celle
sur
> laquelle
> tu arrives et non  pas celle dont tu pars!!!!

> Sinon.
> N'aurais tu pas quelquepart ailleurs dans ce projet une autre
> procèdure évennementielle

> Cordialement.

> --
> LSteph

> On 7 fév, 10:43, raphael-diaz  wrote:
>> Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un
docum ent
>>  :

>> Private Sub Worksheet_Deactivate()
>>     If Not ActiveSheet.Range("marqueur") Is
Nothing Then
>>         If
ActiveSheet.Range("marqueur") =
>> "O" Then
>>             MsgBox "Fonction
>> appelée"
>>             Call FonctionActive
>>         End If
>>     End If
>> End Sub

>> Mon but est d'activer la macro FonctionActive() seulement quand la
cel lul e
>> avec
>> le nom défini "marqueur" est égale à
>> "O". Cependant quand j'execute  le code, le
>> programme m'affiche bien le MsgBox quand les conditions sont remplies
mai s
>> execute dans tous les cas et qu'elle que soit la valeur de marqueur
la ma
cro
>> FonctionActive comme si Call ne prenait pas en considération
la cond iti
>> on If...
>> Pour info la macro FonctionActive est dans un autre fichier
lié au m ien
>>  grace au
>> référence (Outils->références).

Comme je le disais ma macro fonctionne dans le sens où les conditions s
ont
validées et testées avec une MsgBox.
En fait dès que j'utilise la macro "Call" elle est
appelée en 1er, au démarrage
de Worksheet_Deactivate . C'est un probleme lié au fichier qui sert de
référence. Si celui ci est absente j'ai le message d'erreur
suivant : "Erreur de
complilation : Projet ou bibliotheque introuvable".
Cela est embetant car mon but est justement de tester si le fichier est
existant et si il est existant j'active ma macro. L'existance du fichier est
validé par la cellule "marqueur "mais je viens de me rendre
compte que j'aurais
pu etre utiliser ce code :

Private Sub Worksheet_Deactivate()
  Dim Fichier As String
    Fichier = Dir("C:Program FilesMicrosoft
OfficeOFFICE11XLSTARTreference.xla")
    If Fichier <> "" Then 'le fichier existe
            Call
CreateVersionListOnBeforeRightClickEvent(Tar get)
    Else
        MsgBox "Le fichier " & Fichier &
" est inexistant" 'le fi chier n'existe
pas
    End If
End Sub

Dans tous les cas mon Call est appelé dès le début de la
macro...




Bon voilà le code que j'utilise exactement. Le probleme vient que call est appelé directement dans les deux cas....
---------------------------------------------------
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'Verifie si le fichier referentiel est bien présent
Dim Fichier As String
Fichier = Dir("C:Program FilesMicrosoft OfficeOFFICE11XLSTARTreferentiel .xla")
If Fichier <> "" Then 'le fichier existe
Call CreateVersionListOnBeforeRightClickEvent(Target) 'methode que j'ai créée
Else
MsgBox "Le fichier " & Fichier & " est inexistant"
Exit Sub
'le fichier n'existe pas
End If
End Sub 'Arrête la procédure pour éviter le message
------------------------
Private Sub Worksheet_Deactivate()
Dim Fichier As String
Fichier = Dir("C:Program FilesMicrosoft OfficeOFFICE11XLSTARTreferentiel .xla")

If Fichier <> "" Then 'le fichier existe
Call DeleteVersionItemsInPopup 'methode que j'ai créée
Else
MsgBox "Le fichier " & Fichier & " est inexistant"
Exit Sub
End If
End Sub
Avatar
michdenis
Bonjour,

J'ai lu très rapidement et en diagonale...

Au lieu de nous présenter ton code qui ne te satisfait pas,
pourquoi ne pas nous expliquer ce que tu tentes de faire...
si besoin, les répondeurs peuvent en pondre du code, mais
ils doivent d'abord comprendre ce que tu tentes de faire !

Si tu le juges opportun, à la fin de la présentation de ta question,
tu peux inclure ton code... mais il ne faut pas définir ta question
à partir de ce dernier.


MichD
--------------------------------------------
Avatar
LSteph
Re,

C'est en effet curieux,
en tout cas le call dans déactivate n'a pas à tenir compte du if c'est le if
qui détermine ou non l'efficience du call

puisque tu as vérifié où était le marqueur donc bien dans la feuille
destination cela devrait marcher
sinon ce sont les autres codes et contextes qui sont la cause de ton souci
essaye ce test;
Tu ouvres un nouveau classeur avec trois feuilles vides
dans Feuil2 A1 tu écris toto tu quittes feuil1 pour la 2 tu auras le message
pour la 3 non.



'''dans module1
Sub mamacro()
MsgBox "C'est bien cela"
End Sub

'dans le private module de la feuille Feuil1 que tu quittes

Private Sub Worksheet_Deactivate()
If ActiveSheet.[a1] = "toto" Then
Call mamacro
End If

End Sub

'LSteph

"raphael-diaz" a écrit dans le message de
news:
LSteph a écrit le 07/02/2011 à 12h37 :
...je redmets au cas où la question soit bien celle du premier message


''''''''''
Attention en déactivate ainsi écrit activesheet est celle sur
laquelle
tu arrives et non pas celle dont tu pars!!!!

Sinon.
N'aurais tu pas quelquepart ailleurs dans ce projet une autre
procèdure évennementielle
'''''''''''
....ton second post évoque un autre sujet dans un contexte
légèrement
différent et ne donne pas de retour sur cette première
suggestion.

Point commun toutefois les éléments connexes sont tout aussi
opaques
FonctionActive ou CreateVersionListOnBeforeRightClickEvent(Target)

@+ si tu en dis plus et si le sujet ne change pas .

Cordialement.

--
LSteph


On 7 fév, 11:53, raphael-diaz wrote:
LSteph a écrit le 07/02/2011 à 11h29 :

> Bonjour,

> Attention en déactivate ainsi écrit activesheet est celle
sur
> laquelle
> tu arrives et non pas celle dont tu pars!!!!

> Sinon.
> N'aurais tu pas quelquepart ailleurs dans ce projet une autre
> procèdure évennementielle

> Cordialement.

> --
> LSteph

> On 7 fév, 10:43, raphael-diaz wrote:
>> Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un
docum ent
>> :

>> Private Sub Worksheet_Deactivate()
>> If Not ActiveSheet.Range("marqueur") Is
Nothing Then
>> If
ActiveSheet.Range("marqueur") >>> >> "O" Then
>> MsgBox "Fonction
>> appelée"
>> Call FonctionActive
>> End If
>> End If
>> End Sub

>> Mon but est d'activer la macro FonctionActive() seulement quand la
cel lul e
>> avec
>> le nom défini "marqueur" est égale à
>> "O". Cependant quand j'execute le code, le
>> programme m'affiche bien le MsgBox quand les conditions sont remplies
mai s
>> execute dans tous les cas et qu'elle que soit la valeur de marqueur
la ma
cro
>> FonctionActive comme si Call ne prenait pas en considération
la cond iti
>> on If...
>> Pour info la macro FonctionActive est dans un autre fichier
lié au m ien
>> grace au
>> référence (Outils->références).

Comme je le disais ma macro fonctionne dans le sens où les conditions s
ont
validées et testées avec une MsgBox.
En fait dès que j'utilise la macro "Call" elle est
appelée en 1er, au démarrage
de Worksheet_Deactivate . C'est un probleme lié au fichier qui sert de
référence. Si celui ci est absente j'ai le message d'erreur
suivant : "Erreur de
complilation : Projet ou bibliotheque introuvable".
Cela est embetant car mon but est justement de tester si le fichier est
existant et si il est existant j'active ma macro. L'existance du fichier




est
validé par la cellule "marqueur "mais je viens de me rendre
compte que j'aurais
pu etre utiliser ce code :

Private Sub Worksheet_Deactivate()
Dim Fichier As String
Fichier = Dir("C:Program FilesMicrosoft
OfficeOFFICE11XLSTARTreference.xla")
If Fichier <> "" Then 'le fichier existe
Call
CreateVersionListOnBeforeRightClickEvent(Tar get)
Else
MsgBox "Le fichier " & Fichier &
" est inexistant" 'le fi chier n'existe
pas
End If
End Sub

Dans tous les cas mon Call est appelé dès le début de la
macro...




Pour "activesheet" c'est ok, j'ai comprit ton idée et je te remercie mais
cela
ne résout malheuresement pas mon probleme de fond...
Pour ta question j'ai en effet plusieurs procédures évenementielles:
Worksheet_BeforeRightClick, Worksheet_Change et Worksheet_Deactivate.
Elles appellent tous avec "CALL" et un parametre la meme référence
présente
dans le fichier séparé C:Program FilesMicrosoft
OfficeOFFICE11XLSTARTreference.

Mon but et de chercher à savoir si le fichier de référence est présent
dans le
répertoire (avec un marqueur indicateursur la feuille ou comme je l'ai
présenté
avec Fichier = Dir("C:Program FilesMicrosoft
OfficeOFFICE11XLSTARTreference.xla"). Si le fichier n'est pas présent
(par
exemple quand je donne le fichier à des clients) je n'appel pas call comme
ca
ils n'ont pas le beug excel et le message d'erreur ERREUR DE COMPILATION :
Projet ou bibliotheque introuvable.
Cependant et quelques soit les conditions de test, le message d'erreur
revient
comme si call passait en 1er alors que mes conditions s'ont bonnes quand
je les
tests avec des MsgBox.
J'espere avoir été clair. Merci beaucoup pour le temps que tu passes pour
m'aider.
Sincérement
Avatar
DanielCo
Bonsoir,
Si tu exécutes la macro appelante en ligne à ligne, est-ce que tu vois
bien la ligne d'exécution passer du "If" au "Call" en passant au dessus
du "MsgBox" ?
Daniel
Avatar
Gloops
raphael-diaz a écrit, le 07/02/2011 15:10 :
LSteph a écrit le 07/02/2011 à 12h37 :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
'Verifie si le fichier referentiel est bien présent
Dim Fichier As String
Fichier = Dir("C:Program FilesMicrosoft
OfficeOFFICE11XLSTARTreferentiel .xla")




C'est normal, l'espace, juste avant le point ?
Ce n'est pas la réponse car ça aurait l'effet inverse, mais il vaut
autant être sûr de la signification.
Avatar
Gloops
Bonjour,

J'abonderais bien dans le sens de DanielCo, en proposant un point
d'arrêt sur l'instruction Call, et un sur la première instruction de la
fonction appelée.

De plus une fois arrivé sur celle-ci, je propose de cliquer sur le
bouton qui affiche la pile d'appel, pour voir d'où on vient.

Si on a un doute sur la disponibilité du classeur où se trouve la mac ro,
ne serait-ce pas préférable, plutôt que de l'inscrire dans les
références, de l'ouvrir en tant que classeur, et d'appeler la macro e n
stipulant explicitement son emplacement dans le classeur ?

___________________________________________
raphael-diaz a écrit, le 07/02/2011 10:43 :
Bonjour, J'ai posé ce code dans un onglet(classeur) actif d'un docume nt :

Private Sub Worksheet_Deactivate()
If Not ActiveSheet.Range("marqueur") Is Nothing Then
If ActiveSheet.Range("marqueur") = "O" Then
MsgBox "Fonction appelée"
Call FonctionActive
End If
End If
End Sub

Mon but est d'activer la macro FonctionActive() seulement quand la cell ule avec
le nom défini "marqueur" est égale à "O". Cependant quand j'execu te le code, le
programme m'affiche bien le MsgBox quand les conditions sont remplies m ais
execute dans tous les cas et qu'elle que soit la valeur de marqueur la macro
FonctionActive comme si Call ne prenait pas en considération la condi tion If...
Pour info la macro FonctionActive est dans un autre fichier lié au mi en grace au
référence (Outils->références).
1 2