Eliminer une partie d'un export grâce à la date

Bonjour tout le monde,

Je planche dessus depuis maintenant une semaine sans trouver une solution.

On m'a souvent dit écoute les autres ils sont souvent plus intelligent que toi (je ne sais pas ce que je dois en comprendre )

Tous les matin je reçois le résultat d'une requête au format xls, me présentant des lignes de prescription :

La requête est lancée tous les matins à 8h et m'exporte toutes les prescription (d'un service d'urgence) sur les dernière 24h.

Voici mon souci : tous les matins mes nouvelles données sont ajoutées aux anciennes (24h précédente) et donc voilà je suis obligé tous les matins de supprimer manuellement les x lignes de la journée d'avant pour pouvoir traiter mes nouvelles.

Serait il possible en une seule action (macro) de supprimer toutes les anciennes?

transporter les nouvelles dans une nouvelle feuille par exemple?, je ne sais pas, je suis à cours d'idée.

Merci infiniment à tous

PS : J'ai oublié de préciser, la date sur laquelle je veux faire ma sélection est dans la colonne "DTEENT" (colonne F)

Bonjour et bienvenue sur le forum

Tu écris :

la date sur laquelle je veux faire ma sélection est dans la colonne "DTEENT" (colonne F)

OK mais sur quel fichier ? Tu n'en a joint aucun...

Bye !

Bonjour,

Je te propose une solution VBA qui va filtrer tes données par date et copier les résultats dans de nouvelles feuilles.

L'idée de plus, est d'intégrer cette procédure dans ton classeur de macros personnelles (PERSONAL.XLSB).

Il te faudra certainement le créer (on verra après, si ma proposition retient ton attention, puisque nous sommes nombreux sur ce sujet )

Pour résumer, tu ouvres le classeur, tu fais ALT F8 et tu exécutes la procédure.

A te relire.

Cdlt

Public Sub CopyFiltersToWorksheets()
Dim wb As Workbook
Dim wsData As Worksheet, wsTemp As Worksheet, WSnew As Worksheet
Dim lastCol As Long, lRow As Long
Dim rngData As Range, Cell As Range

    Application.ScreenUpdating = False
    Set wb = ActiveWorkbook
    Set wsData = wb.Worksheets(1)

    With wsData
        lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
        .Columns(6).Copy Destination:=.Columns(lastCol + 1)
        .Columns(lastCol + 1).TextToColumns _
                DataType:=xlFixedWidth, _
                FieldInfo:=Array(Array(0, 3), Array(12, 9))
        Set rngData = .Cells(1).CurrentRegion
    End With

    Set wsTemp = wb.Worksheets.Add
    With wsTemp
        rngData.Columns(lastCol + 1).AdvancedFilter _
                Action:=xlFilterCopy, _
                copytorange:=.Cells(1), _
                unique:=True
        lRow = .Cells(Rows.Count, 1).End(xlUp).Row
        For Each Cell In .Range("A2:A" & lRow)
            rngData.AutoFilter field:=(lastCol + 1), Criteria1:="=" & Cell.Value
            Set WSnew = wb.Worksheets.Add(after:=Worksheets(Worksheets.Count))
            WSnew.Name = Cell.Value
            rngData.SpecialCells(xlCellTypeVisible).Copy
            With WSnew
                With .Range("A1")
                    .PasteSpecial xlPasteColumnWidths
                    .PasteSpecial xlPasteValuesAndNumberFormats
                End With
                .Columns(lastCol + 1).Delete
            End With
            Application.CutCopyMode = False
        Next
    End With

    With wsData
        .AutoFilterMode = False
        .Columns(lastCol + 1).Delete
    End With

    Application.DisplayAlerts = False
    wsTemp.Delete
    Application.DisplayAlerts = True

    Set rngData = Nothing
    Set WSnew = Nothing: Set wsTemp = Nothing: Set wsData = Nothing
    Set wb = Nothing

End Sub
Rechercher des sujets similaires à "eliminer partie export date"