Copier une colonne en fonction de la date

Fermé
bobox31 Messages postés 2 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 7 septembre 2016 - 7 sept. 2016 à 15:03
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 9 sept. 2016 à 19:47
Bonjour,

Je suis nouveau sur VBA et je n'arrive pas à faire une macro.
Je m'explique :
Je souhaite que la macro recherche la date du jour en feuille 1 (mes dates sont sur la ligne 2), lorsqu'elle tombe sur le bon jour, il faudrait qu'elle copie les valeurs de la colonne 2 de la feuille 2 dans la colonne de la bonne date de la feuille 1.
N'hésitez pas à me poser des questions si jamais je ne suis pas clair.

Je ne sais pas si vous pourrez m'aider mais merci quand même par avance.
A voir également:

3 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
7 sept. 2016 à 15:37
Bonjour Bobox, bonjour le forum,

Ça manque un peu de précision...

• Rechercher une date en VBA peut s'avérer compliquer. Cela dépend de son format d'une part et aussi de la manière avec laquelle elle a été écrite. Manuellement ou par formule d'après une autre date.
Quel est le format des dates ? Est-il toujours le même ? Formules ou pas ?

• Quand tu dis copier la colonne 2 (=B) de l'onglet Feuille2 dans la colonne de la date, cela implique que ça va écraser la date en ligne 2... Ou alors tu veux copier/coller à partir de la ligne 3 ?

0
bobox31 Messages postés 2 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 7 septembre 2016
7 sept. 2016 à 16:08
Bonjour,

J'ai tapé les dates à la main sur la feuille 1 => 01/01 en case c2, 02/01 en case d2....
Sur la feuille 2 j'ai mis la formule =aujourd'hui() en b2
Donc, imaginons qur nous sommes le 2 janvier, j'aimerai que la macro copie de b4 à b40 sur la feuille 2 pour le coller de d4 en d40 sur la feuille 1

J'espère avoir apporter les précisions demandes.
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
9 sept. 2016 à 19:47
Bonsoir,

Comme tu ne m'as toujours pas donné les formats de date voici un code qui utilise le numéro sérial de la date :

Sub Macro1()
Dim O1 As Worksheet
Dim O2 As Worksheet
Dim DJ As Long

Set O1 = Sheets("Feuil1") 'à adapter
Set O2 = Sheets("Feuil2") 'à adapter
DJ = DateSerial(Year(O2.Range("B2").Value), Month(O2.Range("B2").Value), Day(O2.Range("B2").Value))
For I = 3 To O1.Cells(2, Application.Columns.Count).End(xlToLeft).Column
    If DateSerial(Year(O1.Cells(2, I).Value), Month(O1.Cells(2, I).Value), Day(O1.Cells(2, I).Value)) = DJ Then
        O2.Range("B4:B40").Copy O1.Cells(4, I)
        Exit Sub
    End If
Next I
End Sub



0