Bonjour, est-il possible a partir d'une date au format dd/mm/yyyy de recuperer seulement l'année et de recuperer le mois et l'année.
merci de votre reponse.
Bonjour, est-il possible a partir d'une date au format dd/mm/yyyy de recuperer seulement l'année et de recuperer le mois et l'année.
merci de votre reponse.
Bonjour
Le format de la date n'influe pas. Une date est un nombre, quel que soit le format d'affichage utilisé.
Comme tu es dans le forum VBA, je suppose que c'est par vba...
Les fonctions Month et Year permettent cela.
Exemple de code qui renvoie l'année de la date système
Cela étant, si ta date est une chaine de caractères, tu dois utiliser les fonctions
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox Year(Date())
Left(...), Mid(...) ou Right pour extraire les caractères souhaités.
renverra une chaine représentant le millésime,
Code : Sélectionner tout - Visualiser dans une fenêtre à part right(Madate,4)
renverra le mois, sur base du format présenté dans ta question...
Code : Sélectionner tout - Visualiser dans une fenêtre à part mid(MaDate,4,2)
A toi de voir en fonction de ton cas
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
merci de ta reponse,
j'essaie les indications que tu me donnes...
voila le code :
la valeur dans la cellule F2 est 15/02/2008
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub CommandButton1_Click() Dim madate As Variant madate = Sheets("sheet2").Range("f2").Text Sheets("sheet2").Range("f26").Value = right(madate, 4) Sheets("sheet2").Range("f27").Value = Mid(madate, 4, 2) End Sub
Donc j'aimerais recuperer dans la cellule F26, la valeur 02/2008
et dans la celluel F27 la valeur 2008
Mais les resultat que j'ai sont 02/01/1900 pour F26 et 30/06/1905 pour F27.
Bonjour,
Car tes cellules sont dans un format donné qui n'est pas du texte, vois comme ceci :
ou pour obtenir vraiment ce que tu demandes ci-dessus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub CommandButton1_Click() Dim madate As Variant madate = Range("f22").Text Range("f26:f27").NumberFormat = "@" Range("f26").Value = Right(madate, 4) Range("f27").Value = Mid(madate, 4, 2) End Sub
cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub CommandButton1_Click() Dim madate As Variant madate = Range("f22").Text Range("f26:f27").NumberFormat = "@" Range("f26").Value = Right(madate, 7) Range("f27").Value = Right(madate, 4) End Sub
Didier
merci ça marche.
et pour info, comment on recupere le mois seulement.
et peux-tu m'expliquer ce que c'est le "@" j'aimerai comprendre un peu plus le programme au lieu de copier les lignes.
merci
En toute logique, regardes la déclaration de variable et la modif du code, en faisant F1 sur les mots clefs, tu auras des compléments.
La réponse pour le mois était d'ailleurs fournie dans le post détaillé de Pierre
Ta soif de comprendre est positive, une lecture attentive est déjà un bon départ
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub CommandButton1_Click() Dim madate As String madate = CStr(Range("f22")) Range("f26:f28").NumberFormat = "@" Range("f26").Value = Right(madate, 7) Range("f27").Value = Right(madate, 4) Range("f28").Value = Mid(madate, 4, 2) End SubJe te rajoute des liens à suivre, il y aura de quoi faire
Rajout :
Le plus important est dans la première phrase de Pierre :
Dans Excel (pas vba) fait F1 et tapes date, vois à à propos....Le format de la date n'influe pas. Une date est un nombre, quel que soit le format d'affichage utilisé.
Sinon voir ce qui t'interesse dans :Microsoft Excel enregistre les dates sous la forme de nombres séquentiels appelés numéros de série. Par défaut, le 1er janvier 1900 correspond au numéro de série 1, et le 1er janvier 2008 correspond au numéro de série 39448 parce que 39 448 jours se sont écoulés depuis le 1er janvier 1900. Excel enregistre les heures sous la forme de fractions décimales parce que l'heure est considérée comme une partie de la journée.etc.... (à lire si on veut comprendre le comportement logique d'Excel sur les dates)
http://dolphy35.developpez.com/article/outlook/vba/
http://mhubiche.developpez.com/vba/f...ions/datetime/
http://jeannot45.developpez.com/arti...personnalises/
cordialement,
Didier
Partager