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
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
Dernière modification par un modérateur: