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

Bonjour à toutes et à tous,

Je sollicite votre aide pour une erreur que je ne comprends pas.

Dans un tableau structuré, dès que le chiffre zéro est dans une plage de cellule une boite de dialogue indique que le chiffre zéro est bien saisi.

Lorsque cette valeur cellule par cellule, tout va bien.

Cependant quand je supprime le chiffre zéro de plusieurs cellules en même temps cela provoque un bug de la macro.

A cette ligne ligne : If Target.Value = "0" Then

Comment faire pour résoudre ce bug.

D'avance MERCI

Nazée

16inven-20240220.xlsm (35.02 Ko)
erreur d execution 13

Bonjour Nazee,

C'est parce que la macro à été réalisée pour une seule cellule à effacer.

Après Target.value =0 ajoute And Target.count =1 then

Si tu souhaites éviter le bug

Bonjour X Cells,

Merci pour le retour.

Je viens de réaliser la modification et j'ai toujours le même bug.

Suite,

Poste l'intégralité du Worksheet_Change sans la fenêtre d'erreur qui masque une partie de ton code.

Tu cherches à différencier "0" de 0 ou de la lettre O ?

Bonjour à tous,

Je cherche à différencier le 0 et une cellule vide.

Car une cellule vide est considérée comme si elle contient le chiffre zéro.

worksheet change

A nouveau,

Modification de ton code, l'utilisateur ne pourra pas taper un 0 seul dans ta colonne B.

Soit elle aura un chiffre ou nombre supérieur, soit elle restera vide.

'Afficher un message à chaque fois que la valeur "0" est saisie
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim MonitorRange As Range
    Set MonitorRange = Range("B5:B34")

    'Vérifier si la cellule modifiée se trouve dans la plage
    If Not Intersect(Target, MonitorRange) Is Nothing Then
        'Si la valeur de la cellule modifiée est uniquement "0"

            If Target.Value = 0 Then
            ' Effacement du zéro après avoir bloqué la macro événementielle puis rétablissement par True ensuite
            Application.EnableEvents = False
            Target = ""
            'Affichage du message
            'MsgBox "Attention ! Le chiffre « 0 » est saisi.", vbExclamation, "Alerte « P0 »"
            Application.EnableEvents = True
            'On Error Resume Next
            '0Target.Validation.Delete
            'On Error GoTo 0
            End If
    End If
End Sub

Bonsoir X Cellus, le Forum,

Merci pour le retour.

J'ai toujours le problème. Que le chiffre 0 s'affiche ou pas, en essayant de supprimer cette value sur plusieurs cellule en même temps, j'ai le même bug.

Je veux vraiment afficher le zéro pour constater qui l'a été saisi.

Suite,

Si tu souhaites qu'un 0 soit inscris, il n' y a pas besoin de créer une alerte "Attention chiffre 0 saisi..."

Surtout ensuite pour les supprimer, il suffit d'inscrire dans la cellule un autre chiffre ou nombre et il sera effacé.

De plus, tu as un autre code événementiel qui fait doublon, le Worksheet_SelectionChange qui lance la macro Inventaire avec la même problématique du zéro.

Tu m'étonnes que cela buggue un max.

Explique mieux ce que tu souhaites pour l'utilisateur sinon il va tourner en rond. Comme un zéro.

Ton tableau, une fois rempli il suffit ensuite d'y apporter un bouton pour lancer la macro inventaire.

Et ne pas avoir deux codes évènementiels qui tournent en même temps.

Plus d'explications sont nécessaires...

Bonsoir X Cellus, le Forum,

Après quelques tests et recherches, le bug est résolu.

Tu m'as mis sur la bonne voie, je te remercie beaucoup.

Au lieu de ce code : Target.value =0 ajoute And Target.count =1 then,

il faut mettre comme ceci : If Not Intersect(Target, PlageCellule) Is Nothing And Target.Count = 1 Then

Merci encore pour ton aide.

Nazée

Rechercher des sujets similaires à "erreur execution incompatibilite type"