Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Excel 2010 Lancer macro avec double cliq

MuscatMimi

XLDnaute Accro
Bonsoir a tout le Forum
Meilleurs vœux a tous et surtout la santé
Dans mes archives j'ai récupéré ce code

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B10:M48")) Is Nothing Then
' Call BarreColorTexteBleu
' Exit Sub
End If
Else
If Not Intersect(Target, Range("B10:M48")) Is Nothing Then
Call Debarre
End If
End Sub

Il fonctionne qu'avec "BarreColorTexteBleu,c'est tout
je ne vois pas ou est l'erreur
DoubleClique dans une cellule = macro "BarreColorTexteBleu"
et a nouveau,pour revenir en arrière= Macro "Debarre"
Christian
 

vgendron

XLDnaute Barbatruc
bonjour

es tu bien sur de ce code?
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B10:M48")) Is Nothing Then
' Call BarreColorTexteBleu
' Exit Sub
End If
Else
If Not Intersect(Target, Range("B10:M48")) Is Nothing Then
Call Debarre
End If
End Sub
1) je vois des erreurs de syntaxe: end if mal placé et ou manquant
2) l'appel à la macro BarreColorTextebleu est mis en commentaire.. donc aucune chance que cela fonctionne..
3) redondance du "if not intersect".....

il serait sans doute interressant de voir ton fichier exemple
 

vgendron

XLDnaute Barbatruc
peut etre ceci... totalement au hasard..

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B10:M48")) Is Nothing Then
Call BarreColorTexteBleu
Else
Call Debarre
End If
End Sub
 

MuscatMimi

XLDnaute Accro
Bonjour
merci de ton intervention
Non quand j'ai testé le code joint la macro BarreColorTexteBleu nétait pas en commentaires
Je viens d'essayer ton code ça fonctionne que pour BarreColorTexteBleu,pas Debarre
 

vgendron

XLDnaute Barbatruc
Bonjour

sans fichier exemple. on va avoir du mal à t'aider plu
et sans savoir ce que c'est censé faire non plus..

le code que j'ai corrigé et proposé fait ceci:

Si tu cliques dans la zone B10:M48, alors la macro BarreColorTexteBleu est lancée (que fait cette macro..? aucune idée)
si tu cliques AILLEURS que dans la zone B10:M487, c'est la macro Debarre qui est lancée (idem aucune idée de ce qu'elle fait)
 

MuscatMimi

XLDnaute Accro
BarreColorTexteBleu a pour but de barrer le texte existant de la cellule,si Double cliq
Debarre a pour but de revenir en arrière,c'est a dire débarrer le texte,si un autre double cliq
et ce,dans la plage B10:M48
 

vgendron

XLDnaute Barbatruc
et ceci??
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B10:M48")) Is Nothing Then
Target.Font.Strikethrough = Not (Target.Font.Strikethrough)
Cancel = True
End If
End Sub
 

MuscatMimi

XLDnaute Accro
alors la ça va
sauf que j'ai oublié de te dire que le texte dans ma cellule est en rouge
quand je double cliq,il devient barré et de couleur vert
si a nouveau je reviens en arrière pour le débarrer,le texte redevient rouge
j'ai fait ceci,pour qu'il devienne vert une fois barré,mais je bloque pour qu'il redevienne rouge une fois débarré

If Not Intersect(Target, Range("B10:M48")) Is Nothing Then
Selection.Font.ColorIndex = 10
Target.Font.Strikethrough = Not (Target.Font.Strikethrough)
Cancel = True
End If
 

vgendron

XLDnaute Barbatruc
et dans ce que tu as écrit.. à quel moment dis tu qu'il faut remettre en rouge (ColorIndex=3) ??

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B10:M48")) Is Nothing Then 'SI on double clique dans la zone B10:M48
    Target.Font.Strikethrough = Not (Target.Font.Strikethrough) 'on bascule entre Barré et Non Barré
    Cancel = True
    Target.Font.ColorIndex = IIf(Target.Font.ColorIndex = 3, 10, 3) 'on bascule entre la couleur rouge et vert
End If
End Sub
 

vgendron

XLDnaute Barbatruc
à noter:
Cancel = true
ca annule uniquement le DOUBLE CLIC, pas ce que la macro a fait
ce cancel =true permet de refaire un double clic sur la meme cellule SANS devoir passer par la sélection d'une autre cellule;
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…