Formule date dans cellule via VBA

Padawan_95 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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 ????
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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;@
0
Padawan_95 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Sélectionner la colonne/ clic droit / format de cellule / nombre / personnalisé / mm/jj/aaaa;@
0