Microsoft 365 Archivage et Récupération données

  • Initiateur de la discussion Initiateur de la discussion eric72
  • 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 !

eric72

XLDnaute Accro
Bonsoir à tous,
Tout d'abord à TooFatBoy pour avoir solutionné un de mes problème, cependant il m'en reste un...
Lorsque je remplis mon planning pour une semaine choisie j'archive ces données dans l'onglet "Archives", par contre quand je rappelle cette semaine, le temps de traitement est long pour récupérer les données.
Vous avez peut-être un code "allégé" pour effectuer cette récupération (je galère)!!!
Merci à tous pour votre aide (comme d'habitude).
Eric
 

Pièces jointes

Mais du coup la plage fera toujours le même nombre de colonnes puisqu'on en ajoutera autant qu'on en enlèvera, je ne sais pas si c'est bien clair!!!
C'est parfaitement clair. 👍

Il suffit de rechercher la date d'hier moins un an, de supprimer tout ce qui est inférieur ou égal et d'ajouter autant de colonnes que nécessaire. 😉

(ou chercher la date d'aujourd'hui moins un an, et supprimer tout ce qui est strictement inférieur)
 
Re
Ça devrait pouvoir ce faire
Tu pars d'une base qui respect ses deux consignes et ensuite en fonction de la dernière date on calcule le delta de Date du jour et date du jour plus 6 mois
Je regarde ce soir si pas de réponse avant
Jean marie
PS : depuis mon téléphone !
 
Une proposition pour les colonnes :

VB:
Sub SupprAjoutColArchives()
'
Dim MaDate As Long, MaColonne As Long, NbColonnes As Long

    With Sheets("Archives")

        MaDate = DateAdd("yyyy", -1, Date)
        MaColonne = Application.Match(MaDate, .Range("2:2"), 0)
        NbColonnes = MaColonne - 4
        If Not IsError(MaColonne) And NbColonnes > 0 Then .Range("D2").Resize(, NbColonnes).EntireColumn.Delete Shift:=xlToLeft

        MaDate = DateAdd("m", 6, Date)
        MaColonne = .Range("B2").End(xlToRight).Column
        NbColonnes = MaDate - .Cells(2, MaColonne).Value
        If NbColonnes > 0 Then
            With .Cells(2, MaColonne + 1).Resize(, NbColonnes)
                .FormulaR1C1 = "=RC[-1]+1"
                .Value = .Value
            End With
        End If

    End With

End Sub
 
Une proposition pour les colonnes :

VB:
Sub SupprAjoutColArchives()
'
Dim MaDate As Long, MaColonne As Long, NbColonnes As Long

    With Sheets("Archives")

        MaDate = DateAdd("yyyy", -1, Date)
        MaColonne = Application.Match(MaDate, .Range("2:2"), 0)
        NbColonnes = MaColonne - 4
        If Not IsError(MaColonne) And NbColonnes > 0 Then .Range("D2").Resize(, NbColonnes).EntireColumn.Delete Shift:=xlToLeft

        MaDate = DateAdd("m", 6, Date)
        MaColonne = .Range("B2").End(xlToRight).Column
        NbColonnes = MaDate - .Cells(2, MaColonne).Value
        If NbColonnes > 0 Then
            With .Cells(2, MaColonne + 1).Resize(, NbColonnes)
                .FormulaR1C1 = "=RC[-1]+1"
                .Value = .Value
            End With
        End If

    End With

End Sub
Bonjour TooFatBoy,
J'ai testé ce code et apparemment ça fonctionne nickel, merci d'avoir pu te dégager du temps.
Ca parait si simple!!!
Merci pour tout le boulot réalisé ces derniers jours.

Bonne journée et bon courage.
Eric
 
- 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

Retour