OVH Cloud OVH Cloud

Gestion des Modifications d'un tableau

1 réponse
Avatar
jean-philippe
j'ai un petit souci sur le Prog ci-dessous

l'=E9v=E8nement ne se produit pas quand on cole les valeurs=20
dans les cellules

quelqu'un connait il l'astuce ?

a mettre dans ThisWorkbook

Dim modif As Boolean
Private Sub Workbook_Open()
modif =3D False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim msg As Label
On Error GoTo msg
If modif =3D True Then
Range("DateDerni=E8reModif").Value =3D "Derni=E8re modification=20
le " & Format(Date, _
"dd/mm/yyyy") & " " & Format(Time, "hh:mm") 'c'est l=E0=20
que la date de modif s'affiche
Range("UserDerni=E8reModif").Value =3D "Effectu=E9e Par : " &=20
UserName()
End If
Exit Sub
msg:
End Sub
Private Sub Workbook_SheetChange(ByVal Feuil As Object,=20
ByVal Target As Range)
modif =3D True

Dim msg As Label
On Error GoTo msg
If Target.Column =3D Range("Colonne_Valeur").Column=20
Then 'c'est bien la colonne Mois_valeur
Range("DateSaisie").Cells(Target.Row,=20
1).Font.ColorIndex =3D 5
Range("DateSaisie").Cells(Target.Row, 1).Value =3D Now
End If
Exit Sub
msg:
End Sub

1 réponse

Avatar
Frédéric Sigonneau
Bonjour,

Tu peux essayer d'utiliser également l'événement SheetSelectionChange :

Private Sub Workbook_SheetSelectionChange( _
ByVal Sh As Object, ByVal Target As Range)
If Application.CutCopyMode Then modif = True
End Sub

Cependant, en cas d'un copier/collage spécial d'une cellule sur elle-même (pour
fixer sa valeur en éliminant la formule qu'elle contient, par exemple) cet
événement n'est pas déclenché non plus.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


j'ai un petit souci sur le Prog ci-dessous

l'évènement ne se produit pas quand on cole les valeurs
dans les cellules

quelqu'un connait il l'astuce ?

a mettre dans ThisWorkbook

Dim modif As Boolean
Private Sub Workbook_Open()
modif = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim msg As Label
On Error GoTo msg
If modif = True Then
Range("DateDernièreModif").Value = "Dernière modification
le " & Format(Date, _
"dd/mm/yyyy") & " " & Format(Time, "hh:mm") 'c'est là
que la date de modif s'affiche
Range("UserDernièreModif").Value = "Effectuée Par : " &
UserName()
End If
Exit Sub
msg:
End Sub
Private Sub Workbook_SheetChange(ByVal Feuil As Object,
ByVal Target As Range)
modif = True

Dim msg As Label
On Error GoTo msg
If Target.Column = Range("Colonne_Valeur").Column
Then 'c'est bien la colonne Mois_valeur
Range("DateSaisie").Cells(Target.Row,
1).Font.ColorIndex = 5
Range("DateSaisie").Cells(Target.Row, 1).Value = Now
End If
Exit Sub
msg:
End Sub