date de modification des cellules

laetineveu@hotmail.com

XLDnaute Nouveau
Je chercher à obtenir la date de modification d’une cellule seulement si la cellule atteint la valeur x ou p.
J’ai un tableau sur une feuil 1 et j’ai la même sur la feuil 2. Seule la feuil 1 est complétée la feuil permet juste d’obtenir d’avoir les dates de modification des cellules de la feuil 1. J’ai déjà essayé avec

Function datation() As Date
datation = Now
End Function

Et en mettant ma condition des les cellules de la feuil 2
=SI(OU(feuil 1!F11="x";feuil 1!F11="p");datation();"")
Mais comme mon tableau est composé de liste, dès que je change les choix de ma liste la date s’actualise. Comment faire pour fixer la date de modification d’une cellule afin qu’elle ait seulement lieux quand la cellule prend la valeur x ou p ?
C’est assez urgent s’il vous plait.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : date de modification des cellules

Bonsoir,

Dans la cellule à droite

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 1 Then
     Application.EnableEvents = False
     Target.Offset(0, 1) = Now
     Application.EnableEvents = True
  End If
End Sub

En commentaire:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 1 Then
     Application.EnableEvents = False
     On Error Resume Next
     Target.AddComment
     Target.Comment.Text Text:=CStr(Now)
     Target.Comment.Visible = True
     Target.Comment.Shape.Select
     Selection.AutoSize = True
     Target.Comment.Visible = False
     On Error GoTo 0
     Application.EnableEvents = True
  End If
End Sub

JB
 

Pièces jointes

  • Classeur1.xls
    29 KB · Affichages: 94
  • Classeur1.xls
    29 KB · Affichages: 95
  • Classeur1.xls
    29 KB · Affichages: 97
Dernière édition:

laetineveu@hotmail.com

XLDnaute Nouveau
Re : date de modification des cellules

bonsoir,

merci ça fonctionne bien. J'ai modifié le code pour que cela s'applique à plusieurs colonnes.

Private Sub Worksheet_Change(ByVal Target As Range)
For i = 6 To 100
' defini la plage de colonne
If Target.Column = i Then
's'applique à toutes les colonnes modifiés entre 6 et 100
Application.EnableEvents = False
Target.Offset(0, 0) = Now
'remplace la valeur de la cellule en date
Application.EnableEvents = True
End If
Next i
End Sub

Mais ce que je voudrai faire c'est afficher cette date de modification dans une autre feuille que la cellule modifié.
En gros si la cellule f11 de la feuille 1 est modifiée noter la date dans la même cellule mais sur la feuille 2.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : date de modification des cellules

Bonjour,


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column >= 6 And Target.Column < 100 And Target.Count = 1 Then
      Application.EnableEvents = False
      Sheets(2).Cells(Target.Row, Target.Column) = Now
      Application.EnableEvents = True
    End If
End Sub

Sur une feuille Espion:

Mémorise l'historique des cellules modifiées sur un onglet (nommé Espion)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  temp = Application.CountA(Sheets("espion").Range("a:a")) + 1
  Sheets("espion").Cells(temp, 1) = Target.Address
  Sheets("espion").Cells(temp, 2) = Now
  Sheets("espion").Cells(temp, 3) = Target
  Sheets("espion").Cells(temp, 4) = Environ("username")
End Sub


JB
 

Discussions similaires

Réponses
46
Affichages
1 K

Statistiques des forums

Discussions
312 488
Messages
2 088 861
Membres
103 979
dernier inscrit
imed