Fin de journée : Format date en macro

  • Initiateur de la discussion Initiateur de la discussion deniooo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
 
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 ? 😵

(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é.. 😱
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Réponses
3
Affichages
943
Réponses
16
Affichages
3 K
Réponses
1
Affichages
1 K
Réponses
2
Affichages
905
Retour