Boucle afin de copier les lignes en fonction de la date

Bonjour Cher Forum,

je cherche à faire une boucle mais en vain.. je reste bloqué ici :

Sub test()
Dim derlign1 As Long
Dim derlign As Long
Dim laplage As Range
Dim r As Range
Dim d As Date

For l = 5 To derlign1

With Worksheets("Dispo1")
        derlign = .Cells(.Rows.Count, 6).End(xlUp).Row
        Set laplage = .Range("F5:F" & derlign)
End With

With Worksheets("Dispo2")
        derlign1 = .Cells(.Rows.Count, 6).End(xlUp).Row

End With

d = Worksheets("Dispo2").Range("F5").Value
Application.FindFormat.NumberFormat = "m/d/yyyy h:mm"

Set r = laplage.Find(What:=Format(d, "m/d/yyyy h:mm"), LookIn:=xlValues, lookAt:=xlWhole)

If Not r Is Nothing Then

        With Worksheets("Dispo2").Range("f" & l)
        r.Resize(1, .Columns.Count).Value = .Value

End With

  Set r = Nothing
End If
Set laplage = Nothing
Next l
End Sub

J'ai 2 feuilles Dispo1 et Dispo2,

Dispo2 contient un tableau de données qui change chaque jour et Dispo1 un récapitulatif par date sur une année.

Je cherche à copier les données de chaque ligne de Dispo2 sur la feuille Dispo1 en fonction de la date dans les 2 feuilles en colonne "F".

Si vous pouvez m'aider... un grand merci par avance.

Belle journée.

Bonjour,

  • peux-tu poster un extrait du fichier que tu utilises ?
  • pour ma part, dans ce genre de cas, j'utilise le filtre avancé (en VBA s'il faut le répéter souvent).
11classeur2.xlsm (29.77 Ko)

Bonjour,

Bien sûr, le fichier :

Je n'ai pas tout compris ... ton critère

d = Worksheets("Dispo2").Range("F5").Value

est fixe ?

cela veut dire que dans l'exemple, dans dispo1, tu veux tout ce qui est en F de dispo2 égal à d ? ou à partir de d ?

Non, il ne doit pas être fixe. Il doit se faire ligne par ligne en faite date par date afin de marcher et enfin se copier en Dispo1.

Me comprends tu ?

Non, je n'ai rien compris ... si qqun peut prendre la relève !

Mince.. en faite je cherche a créer une boucle afin de copier toutes les lignes de la feuille "Dispo2" vers la feuille "Dispo1" mais de copier les lignes sur les mêmes date.

Quelqu'un pour m'aider s'il vous plaît ?

je commence à deviner ... est-ce que toutes tes dates en dispo1 se suivent ? si oui, pas de boucle de recherche puisqu'on connait par différence de date la ligne concernée

je ne trouve pas le hote_id dans dispo2

sinon quelles sont les informations à recopier de dispo2 dans dispo1 ? ... je regarderai dmain

Il s'agit de toutes les données de chaque ligne ("F:AP") vers Dispo1 sur la date correspondante.

Le fichier dans Dispo2 change tous les jours.

Merci beaucoup !

Oui, toutes les dates en Dispo1 se suivent c'est une sorte d'archive.

En Dispo2 les dates changent chaque jours.

Sub recopie()
Dim f1 As Worksheet, f2 As Worksheet, i As Long, ligne As Long
Set f1 = Sheets("Dispo1")
Set f2 = Sheets("Dispo2")

For i = 5 To f2.Range("F" & Rows.Count).End(xlUp).Row
    ligne = f2.Range("F" & i).Value - f1.Range("F5").Value + 5
    f2.Range("G" & i & ":AP" & i).Copy Destination:=f1.Range("G" & ligne)
Next

End Sub
13classeur2.xlsm (38.42 Ko)

Merci beaucoup c'est top !

Je ne sais pas dans quoi j'étais parti...

Rechercher des sujets similaires à "boucle afin copier lignes fonction date"