Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
Bonjour,
Comment faire pour qu'une cellule n'accepte qu'une date à l'exception de tout autre format de nombre
et qui si cette cellule est vide la date par défaut soit aujourdhui() ?
Tu saisis = aujourdhui() dans la cellule, ça sera la valeur par défaut. Tu vas dans données/validation et là tu choisis date. Tu choisis éventuellement une plage de dates autorisées. Toute autre valeur sera rejetée et tu peux même mettre un gentil message pour expliquer cela à l'utilisateur.
juste une p'tite question
comment faire pour que si j'enlève la date inscrite dans la cellule, celle-ci soit automatiquement remplie avec aujourdhui() et ne soit jamais vide?
Bonjour
Je ne vois pas. En tous cas surement pas sans VBA mais même là, pas sure de voir la démarche.
Ce que tu peux faire : 1 cellule dans laquelle tu mets la validation sur la date (disons A1) et dans laquelle l'utilisateur écrit
et dans une autre cellule, =si(A1="";aujourdhui();A1)
tu as raison pour le VBA
alors j'ai trouvé un bout de code que j'ai essayé d'adapter mais bien évidemment il ne marche pas:
Sub RemplirCellVide()
Dim MaPlage, Cell As Range
Set MaPlage = Range("f2:f300")
For Each Cell In MaPlage
If IsEmpty(Cell.Value) Then
Cell.Value = aujourdhui() < et là ça bloque
End If
Next Cell
End Sub
en plus je ne sais pas comment faire pour que la macro se lance automatiquement à chaque fois que la cellule est vide...
Bonjour WDandCo..
j'ai essayé liste de validation...du post #5 mais ça ne remplit la condition souhaitée
et comme le dit Misange "En tous cas surement pas sans VBA"
En supposant que la cellule en question soit A1 mettre dans le module de la feuille:
Code:
Dim flag As Boolean
Private Sub Worksheet_Activate()
Range("A1").FormulaLocal = "=AUJOURDHUI()"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If flag Then Exit Sub
flag = True
If Target.Address = "$A$1" Then Target.FormulaLocal = "=AUJOURDHUI()"
flag = False
End Sub
bonjour le forum et merci à vous
après avoir essayé vos propositions, je crois qu'il me faut reformuler ma question:
il faut toujours que dans la cellule A1 il y ait une date: soit la date du jour "aujourdhui()", soit une autre.
Si, pour une raison quelconque, j'enlève la date de cette cellule alors c'est aujourdhui() qui s'inscrit.
il s'agit de calculer des pénalités: tant qu'une date réelle de fin travaux n'est pas inscrite en A1, c'est la date du jour qui fait office de fin de travaux
et je reviens,
la macro du post #6 fonctionne mais il y a 2 soucis:
* il faudrait qu'elle se lance dès la modification de la cellule, je n'y suis pas arrivé avec "Private Sub Worksheet_Change(ByVal Target As Range)"
* si ce n'est pas exactement "aujourdhui()" dans la cellule, le lendemain la date inscrite (celle de la veille donc), fausse le tableau..
une petite idée en ce lundi?... merci et bonne journée...!
ça y est c'est bon.. j'ai trouvé....
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("f2:f122")) Is Nothing Then
Dim MaPlage, Cell As Range
Set MaPlage = Range("f2:f122")
For Each Cell In MaPlage
If IsEmpty(Cell.Value) Then
Cell.FormulaR1C1 = "=TODAY()"
End If
Next Cell
End If
- 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