Formule date dans cellule via VBA

[Fermé]
Signaler
Messages postés
8
Date d'inscription
dimanche 5 avril 2015
Statut
Membre
Dernière intervention
6 mai 2016
-
Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
-
Bonjour,

Je me permets d'ouvrir ce nouveau topic sans avoir pu trouver réponse dans les autres.

J'aimerai automatiser par macro une formule qui puisse me faire passer du format de date jj/mm/aaaa au format mm/jj/aaa.

J'ai trouve la formule suivante qui fonctionne en faisant un copier coller:
=DATE(VALUE(RIGHT(A1,4)), VALUE(MID(A1,4,2)), VALUE(LEFT(A1,2)))
La date d'origine étant en cellule A1.

J'aimerai cependant mettre cette formule automatiquement juste a gauche de la cellule source, qu'importe la source, tant qu'elle est sélectionné au préalable.
Je dois donc adapter mon A1 en fonction de la plage verticale de date sélectionné par l'utilisateur.

Enfin je souhaiterai tirer la formule via vba avec un autofill.

Mon ébauche de code ressemble a ca:

Set celref = selection

numcol = selection.Column
numligne = selection.Row 'donne la premiere cellule de la selection, il suffit de copmter la taille, on a donc le nom de la premiere cellule
celref.EntireColumn.Insert
Set formule = celref.Offset(, -1)

formule.FormulaR1C1 = "=DATE(VALUE(RIGHT(" & R[ numligne ]C[" & numcol & "],4)), VALUE(MID(R[" & numligne & "]C[" & numcol & "],2)), VALUE(LEFT(R[" & numligne & "]C[" & numcol & "]2)))"

DernLigne = Range("A" & Rows.Count).End(xlUp).Row
selection.AutoFill Destination:=Range("column" & DernLigne)

End Sub

3 réponses

Messages postés
15983
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 septembre 2021
1 536
Bonjour,

passer du format de date jj/mm/aaaa au format mm/jj/aaa.

La formule (anglaise) et le code que vous essayez de faire ne donne pas ce que vous cherchez, mais aaaa/mm/jj !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Pourquoi faire de codage dans une autre colonne ????
Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 693
Bonjour,

Dans Excel, le format n'est que l'apparence d'une valeur, il suffit de changer de format pour changer l'apparence !
La valeur réelle d'une date est un nombre qui représente le nombre de jours et la fraction de jour écoulés depuis la veille du 1er janvier 1900 à 00:00:00 (aujourd hui à 12h00 = 42495,5).
C'est-à-dire qu'il suffit de mettre les valeurs au format mm/jj/aaaa;@
Messages postés
8
Date d'inscription
dimanche 5 avril 2015
Statut
Membre
Dernière intervention
6 mai 2016

Bonjour,

Tout d'abord je tiens à vous remercie pour votre aide !

J'ignorai que l'on pouvait faire apparaitre le résultat dans la cellule source...
Comment faire ?

Merci d'avance
Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 693
Sélectionner la colonne/ clic droit / format de cellule / nombre / personnalisé / mm/jj/aaaa;@