Copie collé en fonction date du jour

Bonjour à tous

Merci pour ce forum d'entraide.
Je débute dans les macros sur excel, j'en enregistre afin d'automatisé des fonctions par contre je ne maitrise pas les conditions encore.
C'est pour cela que j'ai besoin de votre aide.
Je n'ai pas trouvé ce que je cherchait sur le forum, sauf si j'ai mal cherché et dans ce cas là je m'excuse d'un éventuel doublon.

Je m'explique, j'aimerai créer une macro qui permet de copié dans ma première feuille appelé Aujourdhui, les données de ma feuille listing mais sous la condition de la date du jour défini sur la première feuille en E2.

Par exemple pour une date du 02/07/2021 que la copie soit celle de la colonne du 02/07/2021 dans la feuille lsting vers la feuille aujourdhui

Merci de votre aide

Je joins mon fichier

Bonjour,

Par VBA en partant du principe que les agents soient classés de la même façon dans les deux feuilles :

Sub COPIE()
Dim C As Range, L%
With Worksheets("Listing")
    L = .Cells(.Rows.Count, 2).End(xlUp).Row
    Debug.Print Worksheets("Aujourdhui").[E2]
    Set C = .Rows(3).Find(CDate(Worksheets("Aujourdhui").[E2]), LookIn:=xlValues)
    .Range(.Cells(4, C.Column), .Cells(L, C.Column)).Copy Worksheets("Aujourdhui").[E4]
End With
End Sub

Par formule en E4 puis en tirant. Se moque du classement des agents entre les deux feuilles :

=INDEX(Listing!$C$4:$F$7;EQUIV($D4;Listing!$B$4:$B$7;0);EQUIV($E$2;Listing!$C$3:$F$3;0))

Cdlt,

Merci ergotamine pour ta réponse

Serait t'il possible de m'expliquer un peu comment la macro fonctionne stp afin de pouvoir la comprendre et en apprendre plus et pouvoir être capable de refaire cela plus tard

merci à toi

Bonjour,

Ci-contre le code commenté :

Sub COPIE()
Dim C As Range, L% 'Défini les variables C comme une plage, L comme un nombre
With Worksheets("Listing") 'Avec la feuille Listing
    L = .Cells(.Rows.Count, 2).End(xlUp).Row 'Défini la dernière ligne en se basant sur la colonne B (via le 2)
    Set C = .Rows(3).Find(CDate(Worksheets("Aujourdhui").[E2]), LookIn:=xlValues) 'Recherche la cellule E2 de la feuille Aujourdhui dans la ligne 3 de la feuille Listing (via le with de début)
    .Range(.Cells(4, C.Column), .Cells(L, C.Column)).Copy Worksheets("Aujourdhui").[E4] 'Copie la plage à partir de la colonne trouvée via C, ligne 4 a dernière ligne via L et la colle à partir de la cellule E4 de la feuille Aujourdhui
End With
End Sub

Cdlt,

Merci pour les explications

J'ai essayé de transposer la macro sur le même tableau mais en le modifiant mais cela ne fonctionne pas

Je remets mon tableau si tu pouvais m'aider

J'ai juste mis la date sur une cellule fusionné sur 2, avec des matin et AM, mais je n'arrive pas à faire la copie des 2 colonnes

Merci de ton aide

Bonjour,

Comme ça :

Sub COPIE()
Dim C As Range, L%
With Worksheets("Listing")
    L = .Cells(.Rows.Count, 2).End(xlUp).Row
    Set C = .Rows(2).Find(CDate(Worksheets("Aujourdhui").[E2]), LookIn:=xlValues)
    .Range(.Cells(4, C.Column), .Cells(L, C.Column + 1)).Copy Worksheets("Aujourdhui").[E4]
End With
End Sub

On rajoute +1 au C.Column de la deuxième .Cells pour prendre la colonne de droite dans l'objet Range.

Cdlt,

Merci de ta réactivité

J'ai essayé de le transposé dans un autre fichier pour voir si j'avais compris la macro mais a priori non car j'ai un message erreur 91 variable objet ou variable de bloc with non défini

Je te mets mon fichier

Je penses que j'ai oublié quelque chose mais je ne vois pas ou

3classseur1.xlsm (18.74 Ko)

Bonjour,

Vos données se trouvent désormais en ligne 1 et non plus 2, donc C ne se cherche plus dans la même ligne. Ensuite il est nécessaire de rajouter 4 colonnes et non 5, car la première colonne est déjà incluse dans la range via le C.Column :

Sub COPIE()
Dim C As Range, L%
With Worksheets("Listing")
    L = .Cells(.Rows.Count, 2).End(xlUp).Row
    Set C = .Rows(1).Find(CDate(Worksheets("Aujourdhui").[E2]), LookIn:=xlValues)
    .Range(.Cells(4, C.Column), .Cells(L, C.Column + 4)).Copy Worksheets("Aujourdhui").[E4]
End With
End Sub

Cdlt,

Merci beaucoup

Impec cela fonctionne et j'ai réussi à comprendre le fonctionnement de la macro

Merci Meric

Rechercher des sujets similaires à "copie colle fonction date jour"