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

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

  • test planning archive.xlsm
    675.1 KB · Affichages: 9

TooFatBoy

XLDnaute Barbatruc
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)
 

ChTi160

XLDnaute Barbatruc
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 !
 

TooFatBoy

XLDnaute Barbatruc
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
 

eric72

XLDnaute Accro
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
 

Discussions similaires

Réponses
28
Affichages
1 K

Statistiques des forums

Discussions
312 237
Messages
2 086 489
Membres
103 234
dernier inscrit
matteo75654548