Fin de journée : Format date en macro

deniooo

XLDnaute Occasionnel
Bonjours,
Je veux définier la valeur d'une cellule entre 2 date, 01/2008 et 12/2099. Je réussi trés bien en passant par les menus excel à la souris. Cela me donne un résultat visible :
déc-08

Or dés que je veux le passer en macro, il ne prends plus ce format de date mais le format basique xx/xx/xxxx..

Je ne vois pas quel champ modifier pour changer ce format. Le macro automatique d'excel m'a donné les codes suivant :
Code:
Range("E14").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="1/1/2008", Formula2:="31/12/2099"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True

une idée pour garder le premier format (mois-année) sous macro ?!

merci.
 
G

Guest

Guest
Re : Fin de journée : Format date en macro

Bonjour Deniooo,

Le format d'une cellule n'a apparement rien avoir avec la validation des données.

Dans la macro que tu nous donnes essaie de changer la portion Formula2 par Formula2:="12/31/2099" (Jour/Mois/Année)

si le problème de formatage persiste essaie d'enregistrer le format de la cellule dans une variable:

Code:
dim fmt as string
fmt=Range("E4").NumberFormat
 
...Validation
 
Puis en fin de macro re-formater la cellule par
 
Range("E4").NumberFormat=fmt

A bientôt
 

deniooo

XLDnaute Occasionnel
Re : Fin de journée : Format date en macro

Je pense qu'avec un :

Selection.NumberFormat = "mmm-yy"

ça devrait passer

Ahhhh parfait !!!
Merci beaucoup !

tu as trouvé ça comment ? o_O

(Probléme résolu)

Je met le code complet qui combine le tout :

Function Datte(ByVal cel As Range)

cel.Select
With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="1/1/2008", Formula2:="31/12/2099"
End With
Selection.NumberFormat = "mmm-yyyy"
End Function

ps: merci quand même Hasco même si je dois avouer que je n'ai pas testé.. :eek:
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
2 K
Réponses
1
Affichages
987
Réponses
2
Affichages
839

Statistiques des forums

Discussions
315 261
Messages
2 117 857
Membres
113 354
dernier inscrit
caillet