Erreur d'exécution ''13'' : Incompatibilité de type

Bonjour à tous,

Je refais appel à vos services.

Je cherche à utiliser une macro pour simplement faire apparaitre un ''X'' en double cliquant sur une cellule. Pour donner une impression de ''case cochée''.

J'ai copié collé la formule VBA suivante (en adaptant les cellules qui m'intéressent):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim plage As Range
Set plage = Union(Range("F8:F49"), Range("G8:G49"))
If Not Intersect(Target, plage) Is Nothing Then: Target = IIf(Target = "X", "", "X")
End Sub

Sauf que cela ne marche pas, et j'ai le problème suivant qui s'affiche :

image

Si j'essaie de débugger voila ce que cela me met :

image

J'ai essayé plein de chose, ça fait 2h00 que je suis dessus, je fais donc appel à votre aide.

Dans l'attente de vous lire,

Cédric.

Bonjour,

Sous Excel 2007 ça fonctionne tel quel...

Mais, Target est un Range dans lequel on essaie de rentrer du String.

Peut-être essayer en précisant la propriété Value du Range :

Then Target.Value = IIf(Target.Value = "X", "", "X")

A+

Bonjour,

Cette erreur survient si tu sélectionnes plusieurs cellules, non?

Et, contrairement à ce que tu souhaites, ce n'est pas l'évènement "Double-Clique" que tu utilises, mais l'évènement "Selection_Change"

Essaie ainsi, si sélection multiple (ou non) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cel As Range
Dim Plage As Range
Set Plage = Range("F8:G49")
For Each Cel In Target
    If Not Intersect(Cel, Plage) Is Nothing Then: Cel = IIf(Cel = "X", "", "X")
Next Cel
End Sub

Ah ben oui !

Pas testé la sélection de plusieurs cellules qui, pourtant, est un classique !!

On peut aussi ne rien faire si plusieurs cellules sont sélectionnées . En début de sub :

If Target.Count > 1 Then Exit Sub
Rechercher des sujets similaires à "erreur execution incompatibilite type"