Sélection de lignes suivant dates
Résolu
kit24be
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
kit24be Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
kit24be Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne sais pas comment faire pour sélectionner en VBA toutes les lignes des trois premiers mois de ma base de données. En sachant que j’ai en colonne E les dates, les heures et les minutes, quelqu’un peut il m’aider ?
Merci d’avance
Je ne sais pas comment faire pour sélectionner en VBA toutes les lignes des trois premiers mois de ma base de données. En sachant que j’ai en colonne E les dates, les heures et les minutes, quelqu’un peut il m’aider ?
Merci d’avance
A voir également:
- Sélection de lignes suivant dates
- Nombre de jours entre deux dates excel - Guide
- Partage de photos en ligne - Guide
- Suivi de modification word - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Formulaire en ligne de meta - Guide
4 réponses
Bonjour,
En VBA, sélectionner est une mauvaise méthode, expliques plutôt ce que tu voudrais faire des données concernées.
En VBA, sélectionner est une mauvaise méthode, expliques plutôt ce que tu voudrais faire des données concernées.
Bonjour,
en colonne E, les dates, heures et minute.
plusieurs fois par jour des données sont encodés de la colonne F a Z,
pour réduire le nombre de lignes de mon classeur, je ne veux garder que les trois derniers mois et transférer les autres dans un autres classeur.
Merci d' avance
en colonne E, les dates, heures et minute.
plusieurs fois par jour des données sont encodés de la colonne F a Z,
pour réduire le nombre de lignes de mon classeur, je ne veux garder que les trois derniers mois et transférer les autres dans un autres classeur.
Merci d' avance
Bonjour,
Essayer ce code
Essayer ce code
Sub archivage()
Dim feuille As Worksheet
Dim date_moins_3mois As Date, mois_ref As String, mois As String
Dim date_mvt As Range, ligne_titre As Range, lignes_à_archiver As Range
'// Assignation feuille mouvements
Set feuille = Sheets("Feuil1")
'// stockage des lignes à archiver
date_moins_3mois = DateAdd("m", -3, Date)
mois_ref = Format(Year(date_moins_3mois), "0000") & Format(Month(date_moins_3mois), "00")
For Each date_mvt In feuille.UsedRange.Columns("E").Rows
'stockage ligne titre
If date_mvt.Row = feuille.UsedRange.Row Then Set ligne_titre = date_mvt.EntireRow
'stockage lignes dont la date est supérieure de 3 mois à celle en cours
If IsDate(date_mvt) Then
mois = Format(Year(date_mvt), "0000") & Format(Month(date_mvt), "00")
If mois < mois_ref Then
If lignes_à_archiver Is Nothing Then Set lignes_à_archiver = date_mvt.EntireRow _
Else Set lignes_à_archiver = Union(lignes_à_archiver, date_mvt.EntireRow)
End If
End If
Next date_mvt
'// copie des lignes à archiver dans nouveau classeur
feuille.Copy: Sheets(1).Cells.Clear 'création nouveau classeur avec format de l'ancien
ligne_titre.Copy Sheets(1).Range("A1") 'copie ligne titre dans nouveau classeur
lignes_à_archiver.Copy Sheets(1).Range("A2") 'copie lignes à archiver dans nouveau classeur
ActiveWorkbook.SaveAs Filename:="Archive_du_" & mois_ref, FileFormat:=xlOpenXMLWorkbook 'sauvegarde nouveau classeur
'// suppression des lignes à archiver dans classeur d'origine
lignes_à_archiver.Delete
End Sub