Bonjour à tous !
J'ai créé une macro avec "Worksheet_Change" qui se déclenchera si une certaine valeur est entrée où que ce soit dans la colonne "G" et si l'utilisateur accepte que la macro se lance (via un message auquel l'utilisateur répond "oui" ou "non"). Si oui, alors les lignes 2 à 12 d'un autre onglet devront être copiées puis collées sous la ligne de la cellule "Target". Sauf que ces lignes viennent faire des modification dans la colonne "G", et donc mon message "souhaitez-vous exécuter la macro ?" apparaît une deuxième fois (comme si l'utilisateur avait fait ces changements.
Donc j'aimerais que lorsque c'est la macro qui fait un changement dans la colonne G, les changements soient ignorés (pas de message). Est-ce possible ?
Voici mon code jusque-là :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("G" & Target.Row & "")) Is Nothing Then
If MsgBox("Do you wish to run the macro ?", vbYesNo, "Confirmation request") = vbYes Then
Application.ScreenUpdating = False
If Target = "M9202-63001" Then
Sheets("Sub Product items details").Rows("2:12").Copy 'Rows corresponding to M9202-63001
Sheets("NPI cost").Select
Range("" & Target.Address & "").Offset(1, -6).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Else: Exit Sub
End If
Application.ScreenUpdating = True
Else: Exit Sub
End If
End If
End Sub
Merci.