KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment copier des lignes et les coller dans une autre feuille en fonction d’une date dans Excel ?

AuteurXiaoyang Date de modification

Supposons que j’aie une plage de données. Je souhaite maintenant copier les lignes entières correspondant à une date précise, puis les coller dans une autre feuille. Avez-vous une solution efficace pour réaliser cette tâche dans Excel ?

Copier des lignes et les coller dans une autre feuille en fonction de la date du jour

Copier des lignes et les coller dans une autre feuille si la date est postérieure à celle du jour


Copier des lignes et les coller dans une autre feuille en fonction de la date du jour

Si vous devez copier les lignes dont la date correspond à celle du jour, veuillez appliquer le code VBA suivant :

1. Maintenez enfoncées les touches ALT + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

2. Cliquez sur Insertion > Module, puis collez le code suivant dans la fenêtre du module.

Code VBA : Copier et coller des lignes en fonction de la date du jour :

Sub CopyRow()
'Updateby Extendoffice
    Dim xRgS As Range, xRgD As Range, xCell As Range
    Dim I As Long, xCol As Long, J As Long
    Dim xVal As Variant
    On Error Resume Next
    Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
    If xRgD Is Nothing Then Exit Sub
    xCol = xRgS.Rows.Count
    Set xRgS = xRgS(1)
    Application.CutCopyMode = False
    J = 0
    For I = 1 To xCol
        Set xCell = xRgS.Offset(I - 1, 0)
        xVal = xCell.Value
        If TypeName(xVal) = "Date" And (xVal <> "") And (xVal = Date) Then
            xCell.EntireRow.Copy xRgD.Offset(J, 0)
            J = J + 1
        End If
    Next
    Application.CutCopyMode = True
End Sub

3. Après avoir collé le code ci-dessus, appuyez sur la touche F5 pour exécuter ce code. Une boîte de dialogue s’ouvrira alors afin que vous puissiez sélectionner la colonne contenant les dates à partir desquelles vous souhaitez copier les lignes (voir capture d’écran) :

une capture d’écran de la sélection de la plage de dates après l’exécution du code

4. Cliquez ensuite sur le bouton OK. Dans une autre boîte de dialogue, sélectionnez une cellule dans une autre feuille où vous souhaitez afficher le résultat (voir capture d’écran) :

une capture d’écran de la sélection d’une cellule de destination

5. Cliquez ensuite sur le bouton OK. Les lignes dont la date correspond à celle du jour sont désormais collées dans la nouvelle feuille (voir capture d’écran) :

une capture d’écran des résultats


Copier des lignes et les coller dans une autre feuille si la date est postérieure à celle du jour

Pour copier et coller les lignes dont la date est supérieure ou égale à celle du jour — par exemple, si la date est égale ou postérieure à celle d’aujourd’hui plus cinq jours —, copiez-les et collez-les dans une autre feuille.

Le code VBA suivant pourrait vous être utile :

1. Maintenez enfoncées les touches ALT + F11pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

2. Cliquez sur Insertion>Module, puis collez le code suivant dans la fenêtre du module.

Code VBA : Copier et coller des lignes si la date est postérieure à celle du jour :

Sub CopyRow()
'Updateby Extentoffice
    Dim xRgS As Range, xRgD As Range, xCell As Range
    Dim I As Long, xCol As Long, J As Long
    Dim xVal As Variant
    On Error Resume Next
    Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
    If xRgD Is Nothing Then Exit Sub
    xCol = xRgS.Rows.Count
    Set xRgS = xRgS(1)
    Application.CutCopyMode = False
    J = 0
    For I = 1 To xCol
        Set xCell = xRgS.Offset(I - 1, 0)
        xVal = xCell.Value
        If TypeName(xVal) = "Date" And (xVal <> "") And (xVal >= Date And (xVal < Date + 5)) Then
            xCell.EntireRow.Copy xRgD.Offset(J, 0)
            J = J + 1
        End If
    Next
    Application.CutCopyMode = True
End Sub

Remarque : dans le code ci-dessus, vous pouvez modifier directement les critères — par exemple « antérieure à aujourd’hui » ou le nombre de jours souhaité — dans la ligne de code If TypeName(xVal) = «Date» And (xVal "") And (xVal >= Date And (xVal < Date + 5)) Then.

3. Appuyez ensuite sur la touche F5 pour exécuter ce code. Dans la boîte de dialogue, veuillez sélectionner la colonne de données que vous souhaitez utiliser (voir capture d’écran) :

une capture d’écran de la sélection de la plage de dates après l’exécution du code 2

4. Cliquez ensuite sur le bouton OK. Dans une autre boîte de dialogue, sélectionnez une cellule dans une autre feuille où vous souhaitez afficher le résultat (voir capture d’écran) :

une capture d’écran de la sélection d’une cellule de destination pour placer les lignes si la date est postérieure à aujourd’hui

5. Cliquez sur le bouton OK. Les lignes dont la date est égale ou postérieure à 5 jours à compter d’aujourd’hui sont alors copiées et collées dans la nouvelle feuille, comme illustré dans la capture d’écran suivante :

une capture d’écran montrant uniquement les lignes dont les dates sont postérieures à aujourd’hui


Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile

  • Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !

Tous les compléments Kutools. Un seul installateur

Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.

ExcelWordOutlookTabsPowerPoint
  • Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
  • Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
  • Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
  • Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
  • Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels