Re bonjour !

J'ai un probleme de conflit entre 2 routines (et non fonction ).
En effet, mon code utilise la routine "double-clic" et est appelante.
J'ai donc des routines "appelées" et d'autres "appelantes" (un GRAND merci à Mercatog sans qui je serais au même point depuis 3 jours !!! ).

Mon soucis est que j'appelle 2 "sous-routines" sur la même plage de cellule et que cela crée un conflit car, du coup aucun ne fonctionne alors que indépendamment elles fonctionnent.

Bon, un code vaut mieux qu'un long discours....

Code fonctionnel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'------------fonction_origine/appelée----------------------------
 
Sub Test_ORIGINE(origine As Range) '0,1
 
    origine.Value = IIf(origine.Value = 0, 1, 0) 'evite le if/then/elseif
 
End Sub
 
'------------fonction double_clic/appelante----------------------
'---------------------------------------------------------------
 
'------------Origine--------------------------------------------
Sub worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
        If Not Intersect(target,     Range("E10:E59,H10:H59,K10:K59,N10:N59,Q10:Q59,T10:T59,W10:W59,Z10:Z59,AC10:AC59,AF10:AF59,AI10:AI59,AK10:AK59")) Is Nothing Then 'selection des colonnes activent
        Call Test_ORIGINE(target)
        Cancel = True
 
    End If
 
End Sub
Code non-fonctionnel:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'------------------fonction Calcul_Somme/appelée-----
Sub Calcul_Somme(calc As Range)
 
    If calc.Value = 0 Then
    Range("E60").Select
    ActiveCell.FormulaR1C1 = "=SUM(R[-50]C:R[-1]C)"
    End If
 
End Sub
 
'------------------fonction_origine/appelée------------
Sub Test_ORIGINE(origine As Range) '0,1
 
    origine.Value = IIf(origine.Value = 0, 1, 0) 'evite le if/then/elseif/then/else...
 
End Sub
 
'------------------fonction_Double_clic/appelante------
'------------------------------------------------------
Sub worksheet_BeforeDoubleClick(ByVal target As Range, Cancel As Boolean)
 
'------------------calcul_somme----------------------
 If Not Intersect(target, Range("E10:E59")) Is Nothing Then
        Call Calcul_Somme(target) 'appelle la macro Calcul_Somme
        Cancel = True 'desactive la saisie au double-clic
 
'------------------origine-----------------------------
If Not Intersect(target, Range("E10:E59,H10:H59,K10:K59,N10:N59,Q10:Q59,T10:T59,W10:W59,Z10:Z59,AC10:AC59,AF10:AF59,AI10:AI59,AK10:AK59")) Is Nothing Then 'selection des colonnes activent
        Call Test_ORIGINE(target)
        Cancel = True
 
    End If
 
End Sub
Le conflit se situe donc dans le fait que les deux routines utilisent la même plage.
Comment peut-on faire pour palier à ce conflit?

J'espere avoir été assez claire...

Merci d'avance pour votre aide et vos commentaires.

n.b:je signal que la totalité du code se situe dans"feuil1" et pas dans differents modules (car trop compliqué pour moi).

Cordialement

Manu