1
votes

VBA - Comment convertir la date en chaîne

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.


0 commentaires

4 Réponses :


2
votes

Quelque chose comme

Sub JustYear()
    Dim yr As Long
    yr = Split(Range("A1").Text, "/")(2)
    Range("B1").Value = yr
End Sub

 entrez la description de l'image ici


0 commentaires

0
votes

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")


0 commentaires

2
votes

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.

 year_snapshot

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

year_vba


0 commentaires

1
votes

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


0 commentaires