Conversion string en date (VBA)
Résoluccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une colonne Excel "échéance" dont la valeur se présente sous la forme ddMM, soit 101 pour le 01/01, 2412 pour le 24/12, etc...
Je souhaite transformer cela en date de l'année en cours (sans forcément l'afficher), afin de faire un calcul par rapport à la date du jour.
Toutefois, je ne m'en sors pas pour la conversion. Sauriez-vous m'aider? Merci.
Détails:
Le but est de convertir cette échéance en date afin de pouvoir ensuite filtrer automatiquement à l'ouverture, les lignes ayant une échéance dans les 30 jours à compter de la date du jour.
Un CDate ou DateFormat direct ne fonctionnant pas (calcule le 10/04/1900 pour l'échéance 101), j'ai pensé à quelque chose comme cela, mais ça ne fonctionne pas (sans compter que le Left sera faux assez souvent):
Sub Auto_Open() For c = 7 To Cells(Rows.Count, 2).End(xlUp).Row D = Right(c, 2) E = Left(c, 2) CDate(Range(c) = E & "/" & D) .... Next c End Sub
Windows / Chrome 107.0.0.0
- Vba string to date
- Qwerty to azerty - Guide
- Video to video - Télécharger - Conversion & Codecs
- Press del to enter setup ✓ - Forum Windows
- Your device ran into a problem and needs to restart - Forum Windows 10
- Majuscule to minuscule - Guide
2 réponses
Bonjour
Essaies ceci ta "date" étant de type entier
Public Function cvdate(d As Integer) As Date Dim j As Long, m As Long, a As Long, cvd As String a = Year(Date) m = d Mod 100 j = d \ 100 cvd = CDate(j & "/" & m & "/" & a) cvdate = cvd End Function
ou ceci, la date étant de type texte
Public Function cvsdate(d As String) As Date Dim j As Long, m As Long, a As Long, cvd As String a = Year(Date) m = Right(d, 2) j = Left(d, Len(d) - 2) cvd = CDate(j & "/" & m & "/" & a) cvsdate = cvd End Function
Cdlmnt