Copier lignes selon dates et heures

Bonjour à tous

Nouveau venu sur ce forum, je viens vous solliciter pour vous exposer mon problème.

Je possède un fichier avec 3 feuilles.

dans le fichier ci-joint, la première feuille « Import » comporte dates et heures ainsi qu’une série à la suite. C'est normal que la date et heure peut-être la même sur plusieurs lignes, derrière ce sont les valeurs qui changent.

Une feuille « choix_date » avec une sélection de date (en Colonne E) et heure (en Colonne F) qui peuvent être positionnées sur des lignes différentes mais toujours dans ces colonnes.

A partir d’une macro Vba, je voudrais à partir des dates et heures sélectionnées dans la feuille «choix_date_heure», copier dans la feuille « Selection », à partir de la cellule A1, les blocs de lignes complets (correspondants aux périodes) qui se trouvent dans la feuille « Import ».

Le format d’heure dans l’onglet « Import » a été volontairement basculé en mode texte.

Si vous avez une solution ou une piste, je suis preneur.

Je vous remercie.

Bonne soirée.

Bonjour David_25,

à tester,

Merci Isabelle pour ton test.

J'ai une erreur une erreur d'exécution '13' : incompatibilité de type sur la ligne :

For i = LBound(slt) To UBound(slt)

dans le code ci-dessous, et j'ai tenté mais je ne suis pas expérimenté pour trouvé le problème.

Si quelqu'un a la solution ??? Merci.

Bon week-end à tous.

Sub Transfert_Lignes()
Application.ScreenUpdating = False
Set sh1 = Sheets("Import")
Set sh2 = Sheets("choix_date_heure")
Set sh3 = Sheets("Selection")

sh2.Activate
addr = Selection.Address
slt = sh2.Range(addr).Value
sh1.Activate
sh1.Rows("1:1").Insert Shift:=xlDown

With sh1
    For i = LBound(slt) To UBound(slt)
      If slt(i, 1) <> "" Then
         With .Range("A1:B1")
            .AutoFilter
            .AutoFilter Field:=1, Criteria1:=slt(i, 1)
            .AutoFilter Field:=2, Criteria1:=slt(i, 2)
            rw1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row
            rw2 = sh3.Cells(Rows.Count, 1).End(xlUp).Row
            Rows("1:" & rw1).Copy Sheets("Selection").Range("A" & rw2)
         End With
      End If
    Next i

    .Range("A1:B1").AutoFilter
    Rows("1:1").Delete Shift:=xlUp
End With
sh3.Activate
Application.Goto Range("A1")
Application.ScreenUpdating = True
End Sub

re,

Une feuille « choix_date » avec une sélection de date (en Colonne E) et heure (en Colonne F) qui peuvent être positionnées sur des lignes différentes mais toujours dans ces colonnes.

as-tu fait une sélection sur la feuille "choix_date_heure" avant de lancer la macro ?

Re Isabelle,

En faite toutes les dates et heures positionnées en colonne E:F sont celles que je veux récupérer à l’aide de la macro. La macro permet t-elle d’aller sélectionner automatiquement toutes ces dates jumelées à une heure afin de récupérer dans la feuille « Import » toutes les lignes complètes qui ont les mêmes dates et heures.

Merci. Bon week-end.

Bonjour,

Une autre proposition à étudier avec Récupérer et transformer (Power Query ; natif 365).

Cdlt.

5david-25.xlsx (78.09 Ko)

Bonjour David, slt Jean-Eric,

à tester,

Bonjour isa et Jean-Eric,

Merci pour vos nouvelles propositions.

Isabelle, la tienne fonctionne exactement comme je voudrais. Juste un petit problème, je perds juste la dernière ligne de chaque bloc sélectionnées. en reprenant ton exemple, dans la feuille "selection", Les 4 premiers blocs importés comportent des blocs de 22 lignes complètes et le dernier bloc copié (celui du 30/04/2019 15:51) comporte 23 lignes complètes. 23 c'est normalement le nombre de lignes de chaque bloc). Mais je suis sûr que tu vas vite trouver la solution au problème.

Jean-Eric, ton exemple fonctionne également. Par contre déjà pas trop à l'aise en Vba, j'y suis encore moins avec les requêtes. Mais je vais essayer de comprendre le principe de construction de ton exemple et je n'hésiterai pas à revenir vers toi, si j'ai quelques questions.

En tout cas, merci à vous.

Bon week-end

Bonjour David, slt Jean-Eric,

voici la modification,

Parfait Isabelle.

C'est exactement ça que je voulais. Ca fonctionne comme je veux.

Merci beaucoup.

Rechercher des sujets similaires à "copier lignes dates heures"