Récupérer l'année par rapport à une date en VBA

Bonjour,

J'ai une macro qui me permet de copier différentes valeurs d'un onglet et de coller ces valeurs sur un onglet. Mais en cellule A3 j'ai une date (jj/mm/aaaa) que je copie et que je colle sous l'autre onglet, mais j'aimerais récupérer uniquement l'année sans être obligé de passer par le format cellule.

Est-ce possible par rapport à ma macro existante?

Sub ImpPrevisio()
Dim Hs_Norm, HS_Ferie, HS_Nuit As Double
Dim DrLigne, i As Long
Dim Nom As String, Mat As String, Annee As Long
Dim Affect As String, P_Nuit As Double, RTT As Double
Dim P_ins As Double, Total As Double, Mois As Long, TR As Integer

Periode = ActiveSheet.Range("D1")
Nom = ActiveSheet.Range("AA8")
Mat = ActiveSheet.Range("U8")
Affect = ActiveSheet.Range("AA9")
Hs_Norm = ActiveSheet.Range("W46")
HS_Ferie = ActiveSheet.Range("X46")
HS_Nuit = ActiveSheet.Range("Y46")
Coll = ActiveSheet.Range("AG9")
Annee = ActiveSheet.Range("A3")

With Sheets("Previsionnel_Mensuel")
    DrLigne = .Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To DrLigne
        If .Range("C" & i) = Nom And .Range("D" & i) = Affect And .Range("H" & i) = Periode Then
                .Range("A" & i) = Coll
                .Range("B" & i) = Mat
                .Range("C" & i) = Nom
                .Range("D" & i) = Affect
                .Range("E" & i) = Hs_Norm
                .Range("F" & i) = HS_Ferie
                .Range("G" & i) = HS_Nuit
                .Range("H" & i) = Periode
                .Range("J" & i) = Annee
                Exit Sub
        End If
    Next i
    .Range("A" & DrLigne + 1) = Coll
    .Range("B" & DrLigne + 1) = Mat
    .Range("C" & DrLigne + 1) = Nom
    .Range("D" & DrLigne + 1) = Affect
    .Range("E" & DrLigne + 1) = Hs_Norm
    .Range("F" & DrLigne + 1) = HS_Ferie
    .Range("G" & DrLigne + 1) = HS_Nuit
    .Range("H" & DrLigne + 1) = Periode
    .Range("J" & DrLigne + 1) = Annee
End With

End Sub

Bonjour Snowkite,

Une idée serait de modifier le type de variable pour Annee en tant que date : Annee as Date au lieu de Annee as Long,

puis de modifier le code :

Range("J" & i) = Annee
Range("J" & DrLigne + 1) = Annee

par :

Range("J" & i) = Year(Annee)
Range("J" & DrLigne + 1) = Year(Annee)

Merci beaucoup

Rechercher des sujets similaires à "recuperer annee rapport date vba"