Erreur VBA "erreur d'exécution '13' : incompatibilité de type"
Résolu
rolynx
Messages postés
74
Statut
Membre
-
rolynx Messages postés 74 Statut Membre -
rolynx Messages postés 74 Statut Membre -
Bonjour à tous,
Je débute en VBA et aimerais un coup de pouce.
Je souhaite, sur un tableau excel, lorsque j'insère la lettre T dans la première colonne :
- toutes les cellules de cette ligne soient vidées jusqu'à la 9eme colonne
- Et qu'une ligne soit créée en dessous de celle où je me trouve.
J'arrive à réaliser ces fonctions mais dès que je les teste une erreur apparaît "erreur d'exécution '13' : incompatibilité de type"
Voici mon code ! J'ai remarqué que lorsque que j'enlève les 2 lignes ayant la fonction de rajouter la ligne je n'ai plus d'erreur. Mais je n'ai pas assez de connaissance pour trouver mon erreur malgré tous les renseignements que j'ai pu récupérer sur le net.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value = "T" Then
Cells(Target.Row, 2).ClearContents
Cells(Target.Row, 3).ClearContents
Cells(Target.Row, 4).ClearContents
Cells(Target.Row, 5).ClearContents
Cells(Target.Row, 6).ClearContents
Cells(Target.Row, 7).ClearContents
Cells(Target.Row, 8).ClearContents
Cells(Target.Row, 9).ClearContents
Cells(ActiveCell.Row, 1).EntireRow.Select
Selection.Insert Shift:=xlDown
End If
End Sub
Merci de votre aide !!!
Je débute en VBA et aimerais un coup de pouce.
Je souhaite, sur un tableau excel, lorsque j'insère la lettre T dans la première colonne :
- toutes les cellules de cette ligne soient vidées jusqu'à la 9eme colonne
- Et qu'une ligne soit créée en dessous de celle où je me trouve.
J'arrive à réaliser ces fonctions mais dès que je les teste une erreur apparaît "erreur d'exécution '13' : incompatibilité de type"
Voici mon code ! J'ai remarqué que lorsque que j'enlève les 2 lignes ayant la fonction de rajouter la ligne je n'ai plus d'erreur. Mais je n'ai pas assez de connaissance pour trouver mon erreur malgré tous les renseignements que j'ai pu récupérer sur le net.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value = "T" Then
Cells(Target.Row, 2).ClearContents
Cells(Target.Row, 3).ClearContents
Cells(Target.Row, 4).ClearContents
Cells(Target.Row, 5).ClearContents
Cells(Target.Row, 6).ClearContents
Cells(Target.Row, 7).ClearContents
Cells(Target.Row, 8).ClearContents
Cells(Target.Row, 9).ClearContents
Cells(ActiveCell.Row, 1).EntireRow.Select
Selection.Insert Shift:=xlDown
End If
End Sub
Merci de votre aide !!!
A voir également:
- Erreur VBA "erreur d'exécution '13' : incompatibilité de type"
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
3 réponses
Bonjour,
L'erreur vient du fait que l'évènement se produit autant de fois qu'il y a des modifications (même à l'intérieur de la macro récursivement). Il faut donc neutraliser la gestion des événements à l'intérieur de la macro comme ceci :
L'erreur vient du fait que l'évènement se produit autant de fois qu'il y a des modifications (même à l'intérieur de la macro récursivement). Il faut donc neutraliser la gestion des événements à l'intérieur de la macro comme ceci :
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Value = "T" Then Application.EnableEvents = False Cells(Target.Row, 2).ClearContents Cells(Target.Row, 3).ClearContents Cells(Target.Row, 4).ClearContents Cells(Target.Row, 5).ClearContents Cells(Target.Row, 6).ClearContents Cells(Target.Row, 7).ClearContents Cells(Target.Row, 8).ClearContents Cells(Target.Row, 9).ClearContents Cells(ActiveCell.Row, 1).EntireRow.Select Selection.Insert Shift:=xlDown Application.EnableEvents = True End If End Sub