Formule date dans cellule via VBA
Padawan_95
Messages postés
9
Statut
Membre
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
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
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:
- Vba column format date
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Hp usb disk storage format tool - Télécharger - Stockage
- Format dat - Guide
- Format apfs - Guide
3 réponses
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 ????
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 ????
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;@
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;@