Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

SiD88

XLDnaute Junior
Bonjour le forum,

Mon problème:

Lorsque je sélectionne plusieurs cellules dont j'en supprime le contenu à l'aide de la touche "Suppr", le message d'erreur d'exécution "13" apparait (Incompatibilité de type).

Au débogage, l'erreur se trouve au niveau du: If Target = "" Then


Pourquoi?


Merci à l'avance pour vos idées ou solutions.
 

Pièces jointes

  • CouleurProd.xlsm
    15.9 KB · Affichages: 31
  • CouleurProd.xlsm
    15.9 KB · Affichages: 37
  • CouleurProd.xlsm
    15.9 KB · Affichages: 34

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Bonjour Sid,

modifie la seconde ligne comme ceci:

If Not Intersect(Target, Range("A2:A11")) Is Nothing And Target.Count = 1 Then

à+
Philippe
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Bonjour,

pas ouvert ton fichier, mais essaie peut être ceci à placer au tout début de ta procédure :
Code:
If Target.Count > 1 Then Exit Sub
bon après midi
@+
 

SiD88

XLDnaute Junior
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Bonjour à tout les deux,

@phlaurent55 Cela fonctionne bien, sauf que la cellule garde ça couleur de fond. Pour ma culture perso, pourquoi le target.count = 1?

@Pierrot93 Ta solution va effectivement supprimer le contenu de la cellule sans changer la couleur de fond mais mon inputbox va s'ouvrir (pour mieux comprendre, il faudrait ouvrir le fichier)


Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Re,
bonjour Philippe:)

peut être comme ceci, mais pas sur d'avoir bien compris :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:A11")) Is Nothing Then Exit Sub
For Each c In Target
If c = "" Then c.Interior.ColorIndex = -4142

reponse = UCase(InputBox("Choisir la nature du produit V (vraix) ou F (faux)"))
If reponse = "V" Then c.Interior.ColorIndex = 33
If reponse = "F" Then c.Interior.ColorIndex = 4
Next c
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Re,

Avec un "else" et un "switch" :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:A11")) Is Nothing Then Exit Sub
For Each c In Target
    If c = "" Then
        c.Interior.ColorIndex = -4142
    Else
        reponse = UCase(InputBox("Choisir la nature du produit V (vraix) ou F (faux)"))
       ' If reponse = "V" Then c.Interior.ColorIndex = 33
       ' If reponse = "F" Then c.Interior.ColorIndex = 4
        c.Interior.ColorIndex = Switch(reponse = "V", 33, reponse = "F", 4)
    End If
Next c
End Sub
 

SiD88

XLDnaute Junior
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Re Pierrot93,

Cette solution permet effectivement de supprimer contenu + couleur, le problème c'est que le message de l'inputbox réapparait après une suppression.

De plus, si je sélectionne 8 cellules à supprimer (par exemple), le message de l'inputbox va apparaitre 8 fois.

L'idée c'est que l'utilisateur puisse supprimer (contenu + couleur) d'un bloc de cellule de la colonne A sans que l'inputbox n'apparaisse ou l'erreur d’exécution "13".

Pour le moment, en prenant la solution de Philippe, je peux:

1. Supprimer une cellule (contenu + couleur) sans que l'inputbox et l'erreur d’exécution n'apparaissent.
2. Supprimer plusieurs cellules (contenu uniquement) sans que l'inputbox et l'erreur d’exécution n'apparaissent.

Objectif, réussir l'étape 2 avec la suppression de la couleur.

Merci
 
Dernière édition:

SiD88

XLDnaute Junior
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Re,

En effet, le post 7 est la réponse au post 5 (Cf edit).

Le code du Post 6 fonctionne. Je ne pensais pas que la fonction switch pouvait fonctionner pour colorer l'intérieur d'une cellule...

Merci beaucoup
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur d'exécution "13" lors de la suppresion silmutané de plusieurs cellules

Re,

avec déclaration des variale et controle d'une saisie valide dans l'inputbox :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, reponse As String
If Intersect(Target, Range("A2:A11")) Is Nothing Then Exit Sub
For Each c In Target
    If c = "" Then
        c.Interior.ColorIndex = -4142
    Else
        Do
         reponse = UCase(InputBox("Choisir la nature du produit V (vraix) ou F (faux)"))
         c.Interior.ColorIndex = Switch(reponse = "V", 33, reponse = "F", 4)
        Loop Until reponse = "V" Or reponse = "F"
    End If
Next c
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 942
Membres
103 679
dernier inscrit
yprivey3