Bonsoir à tous,
Je viens ici pour vous demander un peu d'aide sur mon code vba.
Voici mon code :
Private Sub worksheet_change(ByVal target As Range)
Dim KeyCells As Range
Set KeyCells = Range("A1:A5")
If Not Application.Intersect(KeyCells, Range(target.Address)) Is Nothing Then
If MsgBox("voulez-vous continuer ?", vbYesNo) = vbYes Then
Rows(target.Row).EntireRow.Copy Sheets(2).[A65000].End(xlUp).Offset(1, 0)
MsgBox "la cellule " & target.Offset(0, 1).Value & " a été modifiée et déplacée."
End If
End If
End Sub
J'ai trois questions :
1 - A la place de la partie" Rows(target.Row).EntireRow.Copy", j'aimerais ne copier qu'une partie de cette ligne au lieu de la ligne entière. Est-ce possible ? si oui, auriez-vous une solution ?
par exemple, si je modifie la cellule A12, j'aimerais ne copier sur la ligne 12 que les valeurs des colonnes A, B et C.
2 - Si je pars de l'exemple ci-dessus, je modifie la cellule A12, le code s'execute. Est-ce possible de vider cette celule (A12) sans faire de boucle infinie ? car j'ai fait un test, si je supprime la valeur entrée en A12, le msgbox s'affiche. Solution facile : cliquer sur non... mais il y a-t'il possibilité de faire mieux ? car d'autres personnes seront amenées à travailler sur ce fichier et toutes ne seront pas informées de cette "astuce".
3 - j'aimerais qu'après la ligne " MsgBox "la cellule " & target.Offset(0, 1).Value & " a été modifiée et déplacée."", un mail me soit envoyé. est-ce possible ? si oui, savez-vous comment l'ajouter au code ?
Voilà pour toutes mes questions.
Je vous remercie d'avance pour vos réponses.
je vous souhaite une bonne soirée.
Bien cordialement,
Frustuck