Variable en erreur

Bonjour à tous,

Dans une feuille j'ai le code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

If Not Application.Intersect(Target, Range("K5:K500")) Is Nothing Then

Dim project As String
Dim stage As String

project = ActiveCell.Offset(0, -8).Value
stage = ActiveCell.Value

Tout fonctionne très bien, mais lorsque j'éxécute une autre macro pour suprrimer toutes les lignes de ma feuille :

    Rows("6:1000").delete Shift:=xlUp

Le code plante en mettant en jaune la déclaration de ma variable "Dim project As String"

Est-ce possible de désactiver le code de la feuille lors de l'éxécution de mon autre code ou autre solutiuon?

Merci d'avance et bonne journée !

quand tu supprimes des lignes tu changes ton worksheet la macro se lance et tu as sûrement une variable projet dans ton autre code... Du coup ça plante. Essaie de ne pas utiliser les mêmes noms de variables ou joue sur les variables publiques ou privées.

Par ailleurs les macro évenementielles du type worksheet_change doivent être désactivées quand tu les déclanches via code ou du moins anticipées.

Pour les désactiver,

Application.enableevents = false

Pour les réactiver:

Application.enableevents = true

Bonjoue Engue,

Merci de ta réponse. Non, je n'ai pas d'autre variable project. J'avais mis le code Application.EnableEvents = False dans ma macro, mais pas dans la feuille.

J'ai esseyé de le mettre, mais le code plante toujours.

Merci pour ton aide

Vincent

change le nom de ta variable. Project pour proj

La même errreur survient.

Si la macro évementielle se déclanche c'est que tu n'as pas mis d'application.enableevents = false

Ton active cell ayant une colonne inférieure à 8 ça plante, normal ...

Donc si tu me dis que tu as mis un application.enableevents = false et qu'elle se lance c'est que ce que tu me dis est faux.

Je ne peux donc pas aider quelqu'un qui me raconte des salades.

Bonjour,

J'ai mis la ligne. Peut-être au mauvais endroit ?

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False
Application.EnableEvents = False

If Not Application.Intersect(Target, Range("K5:K500")) Is Nothing Then

Dim projet As String
Dim stage As String

projet = ActiveCell.Offset(0, -8).Value
stage = ActiveCell.Value

Bonjour Engue,

J'ai trouvé, dans ma macro, je mettais Application.EnableEvents = False au début, mais dans la macro, j'appel une autre macro qui remettait le Application.EnableEvents = True à la fin.

Merci de ton aide.

Bonne journée et désolé de t'avoir donner l'impression de t'Induire en erreur

Montre moi toutes les macros ....

Tu veux voir le code des macros ?

ah je n'avais pas vu que tu avais trouvé l'erreur. Avec des bribes de code il n'est pas possible de déceler une erreur. Il faut connaitre le défilement pour. M'enfin tout est bien qui finit bien; si tu as trouvé tant mieux.

Rechercher des sujets similaires à "variable erreur"