Copier une colonne en fonction de la date

bobox31 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   160
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   160
 
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