Supression de ligne sur évèmenent _change

sia72 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
Uryon Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je rencontre actuellement un soucis au niveau d'une procédure située dans l'évènement _change d'une feuille Excel.
Je souhaiterai par ce code que si l'utilisateur supprime une donnée située dans la colonne A (au minimum a la ligne 11), tout la ligne où se situe la donnée soit également supprimée.
Voici le code que j'ai actuellement réalisé :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = "1" And Target.Row >= "11" And Target.Value = "" Then

ActiveCell.EntireRow.Clear
End If
End Sub

Cela me met une erreur de type 13: Incompatibilité de type

Or lorsque je choisis d'arrèter le script le reset de la ligne a bien été effectué.
Quelqu'un pourrait il m'éclairé sur un moyen pour ne plus avoir cette erreur svp?

Merci !

Cordialement

A voir également:

4 réponses

Uryon Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Une incompatibilité de type en général c'est un problème de guillemets, tu as essayé d'enlever les guillements autour du 1 et du 11 ? (Et peut être que tu devrais rajouter une condition isnull avec le = "" ?
0
sia72 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ta réponse,

Le problème est sur le test de la valeur et non autour du 1 et du 11.
Suite a ton message j'ai testé de faire le test avec Target.Value is null, sauf que ce test est fonctionnel pour les objets et ne fonctionne apparament pas pour ce type de test... Une autre idée peut etre?

Merci
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

normalement target.column et row se sont des nombres ex: 1 et 11 pas des chaines de caracteres. Mais ca passe quand meme avec "1" et "11".

Votre probleme est lie a la recursivite provoquee par la raz des cellules de la ligne, pour empecher ceci il faut invalider les evenement excel au debut et les valider a la fin du module

Private Sub Worksheet_Change(ByVal Target As Range)
    'invalide les evenements excel
    Application.EnableEvents = False
    If Target.Column = "1" And Target.Row >= "11" And Target.Value = "" Then
        'raz de la ligne ou la cellule a ete selectionnee
        Target.EntireRow.Clear
    End If
    'valide les evenements excel
    Application.EnableEvents = True
End Sub


Bonne suite
0
Uryon Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Honnêtement non, je vais chercher un peu si je trouve je reviens vers toi.
0