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

Conservation historique

  • Initiateur de la discussion Initiateur de la discussion Tilkes
  • Date de début Date de début

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 !

Tilkes

XLDnaute Nouveau
Bonjour tout le monde,

Je vous joins mon fichier excel pour que vous compreniez.

Voilà, j'ai un onglet qui s'appelle 'Liste des surveillances'. Je rentre une date dans "date planifiée", puis lorsque je rentre une date dans "date replanifiée", ça me supprime la date dans "date planifiée" pour que ça puisse agrémenter ma feuille de planning.

Cependant, pour des raisons d'historiques et traçabilité, j'aimerais pouvoir conserver la date qui du coup a été supprimée dans "date planifiée" sur une autre feuille dans "Liste des surveillances 1".

Pour résumer, dans "Liste des surveillances" il doit y avoir qu'une date et dans "Liste des surveillances 1", il devrait y avoir 3 dates, la date planifiée, replanifiée et réalisée.

Pourriez-vous m'aider ou m'éclairer ?

En vous remerciant,
 

Pièces jointes

Re : Conservation historique

Bonjour Tilkes,

modifie ton code de la feuille "Liste des surveillances" comme ceci (3 lignes ajoutées en début de code)

Code:
Public Flag As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)

' ci-dessous, 3 lignes ajoutées =======================================
If Not Intersect(Target, Range("D14:H500", "K14:O500")) Is Nothing Then
Sheets("Liste des surveillances 1").Range(Target.Address) = Target
End If
' =====================================================================

If Flag Then Exit Sub
    If Not Application.Intersect(Target, Range("d14:d500")) Is Nothing Then
        Flag = True
            Target.Offset(0, 2).ClearContents
        Flag = False
    End If
    '------------
   If Not Application.Intersect(Target, Range("f14:f500")) Is Nothing Then
        Flag = True
            Target.Offset(0, -2).ClearContents
        Flag = False
    End If
    
      
    
    
    
    If Flag Then Exit Sub
    If Not Application.Intersect(Target, Range("f14:f500")) Is Nothing Then
        Flag = True
            Target.Offset(0, 2).ClearContents
        Flag = False
    End If
    '------------
   If Not Application.Intersect(Target, Range("h14:h500")) Is Nothing Then
        Flag = True
            Target.Offset(0, -2).ClearContents
        Flag = False
    End If

    
    '**************************
    
    
If Flag Then Exit Sub
    If Not Application.Intersect(Target, Range("k14:k500")) Is Nothing Then
        Flag = True
            Target.Offset(0, 2).ClearContents
        Flag = False
    End If
    '------------
   If Not Application.Intersect(Target, Range("m14:m500")) Is Nothing Then
        Flag = True
            Target.Offset(0, -2).ClearContents
        Flag = False
    End If
    
      
    
    
    
    If Flag Then Exit Sub
    If Not Application.Intersect(Target, Range("m14:m500")) Is Nothing Then
        Flag = True
            Target.Offset(0, 2).ClearContents
        Flag = False
    End If
    '------------
   If Not Application.Intersect(Target, Range("o14:o500")) Is Nothing Then
        Flag = True
            Target.Offset(0, -2).ClearContents
        Flag = False
    End If

End Sub


à+
Philippe
 
Re : Conservation historique

Merci pour ta réponse mais je pense pas que ce soit ce que je souhaitais. En rajoutant ces trois lignes, ça copie juste les dates de la première feuille dans la seconde mais c'est tout ?
Ca ne garde rien en mémoire ?

Merci !
 
Re : Conservation historique

Re,

Pour garder l'historique , avec ceci:
Code:
If Not Intersect(Target, Range("D14:H500", "K14:O500")) Is Nothing Then
Sheets("Liste des surveillances 1").Range(Target.Address) = Sheets("Liste des surveillances 1").Range(Target.Address) & vbLf & Target
End If

à+
Philippe
 
Re : Conservation historique

Parfait, c'est ce que je souhaitais !

Et saurais-tu s'il est possible de garder que la dernière date mise en mémoire ? Ne pas garder si tu changes la date mais seulement la dernière mise à jour pour pouvoir sortir des indicateurs et graphiques.

Des milliers de merci 🙂
 
Dernière édition:
Re : Conservation historique

Quand je mets ton premier code, ça garde bien la dernière mise à jour mais ça garde pas en mémoire .. Donc si je mets une date dans "date planifiée" de la première feuille, alors je retrouve cette date dans la seconde feuille. Cependant, si je mets une date dans "date replanifiée" de la première feuille, ça indique cette date dans la seconde feuille mais ça supprime celle dans "date planifiée" donc ça ne garde pas l'historique ..
 
Re : Conservation historique

Re,

il suffit d'ajouter:
Application.EnableEvents = False
au début du code

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("D14:H500", "K14:O500")) Is Nothing Then
...................................................
.....................................


à+
Philippe
 
Re : Conservation historique

Re,

et ne pas oublier de mettre ceci à la fin du code
Code:
....................................
............................................
Application.EnableEvents = True
End Sub

à+
Philippe
 
Re : Conservation historique

En rajoutant cette ligne, ça fait arrêter le code entier et plus rien ne fonctionne ...

En fait, avec ce code là :

Code:
If Not Intersect(Target, Range("D14:H500", "K14:O500")) Is Nothing Then
Sheets("Liste des surveillances 1").Range(Target.Address) = Sheets("Liste des surveillances 1").Range(Target.Address) & vbLf & Target
End If

ça marche, sauf que dans une cellule de la feuille 2, il peut y avoir plusieurs dates si on change plusieurs fois la date dans la feuille 1. Du coup, je ne peux pas faire de graphique avec les données de la feuille 2 car il peut y avoir plusieurs dates dans une seule cellule. C'est pour cette raison que j'aimerais un code qui supprime toutes ces dates SAUF la dernière ..

En te remerciant
 
- 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

Réponses
4
Affichages
272
Réponses
1
Affichages
784
  • Question Question
Microsoft 365 formules si
Réponses
3
Affichages
411
Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…