Bonjour,
Je me suis rendu compte que je me suis trompé dans le test logique.
Le test pour vérifier si une date contenue dans une cellule est de la même année et le même mois que la date du jour est
If (Year(.Cells(1, c) = Year(Date)) And (Month(.Cells(1, c)))) = Month(Date) Then
Imaginons un tableau dans une plage $A$1:$O$17 d'une feuille nommée [CA] contenant en ligne 1, des dates peu importe le format
Voici un exemple de code copiant lla colonne contenant la date du mois et de l'année de la date du jour vers la cellule A1 de la feuille nommée [Export]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Sub CopyColumn()
Dim rngSource As Range, rngTarget As Range, c As Integer
With ThisWorkbook
Set rngSource = .Worksheets("CA").Range("A1").CurrentRegion
Set rngTarget = .Worksheets("Export").Range("A1")
End With
With rngSource
For c = 1 To .Columns.Count
If (Year(.Cells(1, c) = Year(Date)) And (Month(.Cells(1, c)))) = Month(Date) Then
Debug.Print (Year(.Cells(1, c)) And Month(.Cells(1, c))) & " - " & _
(Year(Date) And Month(Date))
.Columns(c).Select
.Columns(c).Copy rngTarget
End If
Next
End With
End Sub |
Attention que les dates contenues dans les cellules de la première ligne doivent être des nombres entiers (pas d'heure) sinon il y a lieu d'ajouter la fonction Int
Partager