J'ai une colonne de date dans EXCEL avec la date au format - 27/01/2019. Je souhaite écrire un script en VBA pour extraire uniquement la partie de l'année (2019) et le mettre dans une autre colonne.
Est-ce que je convertis d'abord la date en chaîne? Et puis divisez la chaîne en utilisant
`Split(date_as_string, "/")
pour obtenir la partie de l'année ??
Comment puis-je convertir la date en chaîne pour y parvenir? Toute autre approche pour résoudre ce problème est également appréciée.
4 Réponses :
Pour le texte représentant l'année,
range("A1") = val(format(cdate(date_as_string), "yyyy"))
Pour obtenir un vrai nombre représentant l'année,
range("A1") = format(cdate(date_as_string), "yyyy")
Si votre colonne de date est au format de date vrai, la fonction Excel YEAR peut être utilisée pour renvoyer la valeur de l'année dans une autre colonne. La date reflétée dans la colonne dans ce cas est dans le format de date local de mon système. Cela peut être différent dans votre système, mais YEAR fonctionnera selon votre système de date.
MODIFIER: Si vous voulez opter pour VBA, un exemple de macro est:
Sub Year_Only()
Dim yr As String
yr = Year(Range("A1"))
Range("B1").Value = yr
End Sub
Utilisez simplement la fonction Year ():
Option Explicit
Sub test()
Dim yea As Integer
Dim r As Range
Set r = Range("a1")
yea = year(r.Value)
Debug.Print yea
End Sub