Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Historique des modifications

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

de_hanstrapp

XLDnaute Occasionnel
Bonjour le forum,

J'ai crée dans un classeur une feuille (AA_Historique) qui permet d'obtenir un historique des modifications.
Avec le code ci-après je récupère un certin nombre d'informations. Ma question est comment je peux intégrer en colonne 6 la valeur de la cellule avant la modification.

Merci pour votre aide.

VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Sh.Name = AA_Historique.Name Or Sh.Name = "AA_Donnees" Then Exit Sub
With AA_Historique
    .Unprotect Password:=Wbk_Protect
    With .Range("A65536").End(xlUp)
        .Offset(1, 0).Value = Now()
        .Offset(1, 1).Value = Environ("computername")
        .Offset(1, 2).Value = Environ("username")
        .Offset(1, 3).Value = Sh.Name
        .Offset(1, 4).Value = Target.Address
[COLOR=rgb(184, 49, 47)]        .Offset(1, 5).Value = ???[/COLOR]
        .Offset(1, 6).Value = Target.Value
    End With
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=Wbk_Protect
End With
On Error GoTo 0
End Sub
 
Bonjour,
Une idée possible, dans la feuille, rajoutez :
Code:
Public ValeurAuClic, AdresseAuClic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    ValeurAuClic = Target
    AdresseAuClic = Target.Address
    ' Pour test
    Application.StatusBar = AdresseAuClic & " - " & ValeurAuClic
End Sub
Les variables AdresseAuClic et ValeurAuClic contiendront l'adresse et la donnée présentent dans la dernière cellule cliquée, donc avant sa modification.
Le Statusbar ( pour test ) recopie ces 2 variables bans la barre de status, à supprimer évidemment.
 

Bonjour Sylvanu,
Merci pour votre réponse mais je vous avoue que je ne comprends pas la manipulation que je dois effectuer...
 
Bonjour Staple1600,
Personnellement j'utilise office 365 mais ce n'est pas le cas de toutes les personnes qui utilisent le fichier d'où ma volonté de créer un historique.
 
Bonjour le fil

Si le classeur ne contient pas de macros, l'ancienne option Revision permet justement d'indiquer le nombre de jours
En théorie doit fonctionner sur toutes versions d'Excel

Pour plus de détails
 
Bonjour de_hanstrapp, Staple,
Si vous le voulez en VBA, voir PJ avec :
VB:
Sub Nettoyage() ' Supprime toute ligne antérieur à 15 jours.
Application.ScreenUpdating = False
With Sheets("JOURNAL")
    For L = .Cells(.Cells.Rows.Count, "B").End(xlUp).Row To 3 Step -1
        If Date - .Cells(L, "B") > 15 Then Rows(L).Delete Shift:=xlUp
    Next L
End With
End Sub
Un bouton de test dans la feuille Journal.
Vous pouvez l'appelez en fin de Workbook_SheetChange.
Il y a surement plus rapide, mais le nombre de lignes à nettoyer restera faible.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
80
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
252
Réponses
2
Affichages
409
Réponses
3
Affichages
600
Réponses
4
Affichages
363
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…