Private Sub Worksheet_Change
c
Bonjour,
J'ai deux procédures Private Sub Worksheet_Change
La première:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E16:E1000")) Is Nothing Then Range(Cells(Target.Row, "F"), Cells(Target.Row + 1, "L")).ClearContents
End SubLa deuxième:
Private Sub Worksheet_Change(ByVal Target As Range)
' Si modification dans la plage M16:M1000
If Not Intersect(Target, Range("M16:M1000")) Is Nothing Then
' Si le choix est oui
If Target.Value = "Oui" Then
' Désactiver les évènements
Application.EnableEvents = False
' On insère une ligne en dessous
ActiveSheet.Rows(Target.Row + 1).EntireRow.Insert Shift:=xlDown
' Réactiver les évènements
Application.EnableEvents = True
End If
End If
End SubLes deux fonctionnent très bien quand j'en mets une en commentaire, et l'autre non.
Quand ils sont tous les deux en fonction (sans commentaire), ça ne fonctionne pas.
Comment les faire fonctionner ?
Il faut créer seulement un Private Sub Worksheet_Change mais comment intégrer les deux dans une procédure Worksheet_Change et qu'ils fonctionnent encore ?
Merci !
Merci !
Merci !
g
Bonjour
Essaie ça :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E16:E1000")) Is Nothing Then Range(Cells(Target.Row, "F"), Cells(Target.Row + 1, "L")).ClearContents
'Si modification dans la plage M16:M1000
ElseIf Not Intersect(Target, Range("M16:M1000")) Is Nothing Then
'Si le choix est oui
If Target.Value = "Oui" Then
'Désactiver les évènements
Application.EnableEvents = False
'On insère une ligne en dessous
ActiveSheet.Rows(Target.Row + 1).EntireRow.Insert Shift:=xlDown
'Réactiver les évènements
Application.EnableEvents = True
End If
End If
End SubBye !
c
Bonjour!
Merci de m'avoir répondu.
J'ai essayé ton code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E16:E1000")) Is Nothing Then Range(Cells(Target.Row, "F"), Cells(Target.Row + 1, "L")).ClearContents
'Si modification dans la plage M16:M1000
ElseIf Not Intersect(Target, Range("M16:M1000")) Is Nothing Then
'Si le choix est oui
If Target.Value = "Oui" Then
'Désactiver les évènements
Application.EnableEvents = False
'On insère une ligne en dessous
ActiveSheet.Rows(Target.Row + 1).EntireRow.Insert Shift:=xlDown
'Réactiver les évènements
Application.EnableEvents = True
End If
End If
End SubJ'obtiens cet erreur:
Pourtant, les blocks End If sont tous là il me semble…
Bonjour à tous,
Une petite coquille dans le code gmb ..
Ceci devrait convenir ...
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E16:E1000")) Is Nothing Then
Range(Cells(Target.Row, "F"), Cells(Target.Row + 1, "L")).ClearContents
'Si modification dans la plage M16:M1000
ElseIf Not Intersect(Target, Range("M16:M1000")) Is Nothing Then
'Si le choix est oui
If Target.Value = "Oui" Then
'Désactiver les évènements
Application.EnableEvents = False
'On insère une ligne en dessous
ActiveSheet.Rows(Target.Row + 1).EntireRow.Insert Shift:=xlDown
'Réactiver les évènements
Application.EnableEvents = True
End If
End If
End Subric
c
Super ça fonctionne !!!
Merci beaucoup !!!
