Bonjour,
Comment transformer les codes des jours comme 'J20150703' to 2015/07/03
exemple
J20150703 to 2015/07/03
J20150610 to 2015/06/10
J20150520 to 2015/05/20
J20150409 to 2015/04/09
J20150320 to 2015/03/20
J20150311 to 2015/03/11
Merci
Bonjour,
Comment transformer les codes des jours comme 'J20150703' to 2015/07/03
exemple
J20150703 to 2015/07/03
J20150610 to 2015/06/10
J20150520 to 2015/05/20
J20150409 to 2015/04/09
J20150320 to 2015/03/20
J20150311 to 2015/03/11
Merci
Bonjour,
Fonction Mid() dans l'aide de VBA
& = opérateur de concaténation dans l'aide de VBA
pour l'année
Au pire tu cliques sur mid dans l'éditeur et tu appuies sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub TrouveLAnnée() Dim CetteDate As String Dim UneAnnée As Integer Dim LAnnée As String CetteDate = "J20150703" LAnnée = Mid(CetteDate, 2, 4) UneAnnée = CInt(LAnnée) End Sub![]()
Salut, sous forme de fonction personnalisée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Option Explicit Function ConvDate(sDate As String) As String Dim sAn As String, sMois As String, sJour As String sAn = Mid$(sDate, 2, 4) sMois = Mid$(sDate, 6, 2) sJour = Mid$(sDate, 8, 2) ConvDate = sAn & "/" & sMois & "/" & sJour End Function Sub Tst() Dim sStr As String sStr = "J20150520" MsgBox ConvDate(sStr) End Sub
Bonjour
notons que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 chaine = "J20150703" MsgBox Format(CDate(Format(Mid(chaine, 2), "####/##/##")), "yyyy/mm/dd")
retournerait quant à lui 03/07/2015
Code : Sélectionner tout - Visualiser dans une fenêtre à part CDate(Format(Mid(chaine, 2), "####/##/##"))
mais que (mais moins orthodoxe car on passe à côté d'une contrainte de date)
retournerait aussi "2015/07/03"
Code : Sélectionner tout - Visualiser dans une fenêtre à part Format(Mid(chaine, 2), "####/##/##")
ainsi d'ailleurs que :
EDIT : que décider alors ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Format(Mid(chaine, 2), "@@@@/@@/@@")
Ma réponse : c'est selon.
- selon que la chaîne chaine a fait l'objet d'une vérification de contrainte de validité de date au moment même de sa construction et dans ce cas la solution 3 ou 4 convient et suffit
ou
- selon que la chaîne a été construite sans cette vérification (ou que, extraite d'ailleurs, on n'est pas certain de ce que cette vérification a été faite en amont) et la solution 1 est alors à privilégier car elle donne l'occasion d'alerter éventuellement (avant d'autres dégâts possibles).
Bonjour,
d=Cdate(format(Replace ("J20150703","J","")"0000-00-00"))Edite: effectivement
d=Cdate(format(Replace ("J20150703","J",""),"0000-00-00"))
Dernière modification par Invité ; 26/07/2016 à 10h47.
Bonjour durupt
n'oublie pas la virgule nécessaire après la 4ème parenthèse.
Egalement, mais ainsi, on obtient non aaaa/mm/jj, mais jj/mm/aaaa
Partager