Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment copier des lignes et les coller sur une autre feuille en fonction de la date dans Excel?

Supposons, j'ai une plage de données, maintenant, je veux copier les lignes entières en fonction d'une date spécifique, puis les coller dans une autre feuille. Avez-vous de bonnes idées pour gérer ce travail dans Excel?

Copiez les lignes et collez-les dans une autre feuille en fonction de la date du jour

Copiez les lignes et collez-les dans une autre feuille si la date est plus grande qu'aujourd'hui


Copiez les lignes et collez-les dans une autre feuille en fonction de la date du jour


Si vous avez besoin de copier les lignes si la date est aujourd'hui, veuillez appliquer le code VBA suivant:

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez le code suivant dans la fenêtre du module.

Code VBA: Copiez et collez les 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 F5 clé pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner la colonne de date que vous souhaitez copier des lignes sur la base, voir capture d'écran:

4. Puis clique OK Dans une autre boîte d'invite, sélectionnez une cellule dans une autre feuille où vous souhaitez afficher le résultat, voir capture d'écran:

5. Et puis cliquez OK bouton, maintenant, les lignes dont la date est aujourd'hui sont collées dans la nouvelle feuille à la fois, voir capture d'écran:


Copiez les lignes et collez-les dans une autre feuille si la date est plus grande qu'aujourd'hui

Pour copier et coller les lignes dont la date est supérieure ou égale à aujourd'hui, par exemple, si la date est égale ou supérieure à 5 jours depuis aujourd'hui, copiez et collez les lignes dans une autre feuille.

Le code VBA suivant peut vous faire une faveur:

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez le code suivant dans la fenêtre du module.

Code VBA: Copiez et collez des lignes si la date est supérieure à aujourd'hui:

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

Note: Dans le code ci-dessus, vous pouvez modifier les critères, tels que moins que aujourd'hui ou le nombre de jours dont vous avez besoin dans le Si TypeName (xVal) = "Date" Et (xVal <> "") Et (xVal> = Date Et (xVal <Date + 5)) Puis code de script.

3. Puis appuyez F5 Pour exécuter ce code, dans la boîte de dialogue, sélectionnez la colonne de données que vous souhaitez utiliser, voir capture d'écran:

4. Puis clique OK Dans une autre boîte d'invite, sélectionnez une cellule dans une autre feuille où vous souhaitez afficher le résultat, voir capture d'écran:

5. Clique le OK bouton, maintenant, les lignes dont la date est égale ou supérieure à 5 jours depuis aujourd'hui ont été copiés et collés dans la nouvelle feuille comme suivant capture d'écran montré:



Outils de productivité recommandés

Office Tab

étoile d&#39;or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d&#39;or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d&#39;or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d&#39;écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Sarah B · 5 months ago
    Is it possible to do this for an entire workbook if the date is always in the same column on each? If so, what would the VBA code be, or which bit would I change?