XL 2016 Uniformiser la date des cellules

  • Initiateur de la discussion Initiateur de la discussion Phylo
  • 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 !

Phylo

XLDnaute Occasionnel
Bonjour

J 'ai crée un fichier excel qvec un code vba qui incorpore la date automatiquement
Mais vu que le fichier est utilisé par plusieurs personne. La date entrée est variable selon la date d' ordi de chaque personne

je veux insérer l'instruction dans ce code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Columns("J")) Is Nothing And Target.Value <> "" Then
Target.Offset(0, 1).Value = Date & " " & Time
End If

'Dans les colonnes I et K la format de la date est : dd-mm-yyyy
exemple :
Columns()Numberformat="dd-mm-yyyy"


Merci d'avance
 

Pièces jointes

Solution
Mode:=1 est à préciser après une virgule à la fin d'une instruction CA.Add dans la Sub UserForm_Initialize.
Oui, elle ne gène pas, elle est là au cas où vous auriez besoin un jour de pouvoir en supprimer une. Ne serait-ce qu'à la suite d'un ajout avec une information erronée tapée dans une ComboBox.

Je joint mon classeur où j'ai déplacé un ou deux CA.Add pour qu'ils soient dans un ordre plus proche de celui des colonnes du tableau.
La fonction NOW renvoie la date et l'heure actuelles, mises à jour en permanence lorsqu'une feuille de calcul est modifiée ou ouverte. Moi je veux la date réelle d'enregistrement et qu'elle reste fixe.
Mon probléme est que je ne peux uniformiser la date entrée par différentes personnes
 
La fonction VBA.Now renvoie la valeur de la date et de l'heure au moment où on l'invoque. Si on l'affecte à une valeur de cellule on n'affecte pas de formule à celle ci, n'est-ce pas.
Uniformisez le format des cellules. Mais c'est trop tard pour les cellules qui ont déjà une date fausse ou un texte non converti parce qu'on leur a mis des String qu'il a pris de travers selon une règle d'interprétation internationale au lieu de leur mettre des valeurs de date et heure données par la fonction Now.
 
Dernière édition:
La fonction VBA.Now renvoie la valeur de la date et de l'heure au moment où on l'invoque. Si on l'affecte à une valeur de cellule on n'affecte pas de formule à celle ci, n'est-ce pas.
Uniformisez le format des cellules. Mais c'est trop tard pour les cellules qui ont déjà une date fausse ou un texte non converti parce qu'on leur a mis des String qu'il a pris de travers selon une règle d'interprétation internationale au lieu de leur mettre des valeurs de date et heure données par la fonction Now.

Merci bcp Dranreb pour tés réponses
le code marche tres bien avec la fonction now

mais j ai un petit souci si quand la date est incoroprèe je ne peux pas modifier cette date pour antidater par exemple. Certains ^personne oublient la tache et veulent la date d'hier, il y a une formule qui empéche le changement et il n'accépte que la date enregistrée par la macro

j'espère que j'étais trés explicite
 
Dernière édition:
Merci bcp Dranreb pour tés réponses
le code marche tres bien avec la fonction now

mais j ai un petit souci si quand la date est incoroprèe je ne peux pas modifier cette date pour antidater par exemple. Certains ^personne oublient la tache et veulent la date d'hier, il y a une formule qui empéche le changement et il n'accépte que la date enregistrée par la macro

j'espère que j'étais trés explicite
 
Vérifiez bien si la Worksheet_Change ne réagit pas à tort si c'est une des colonne de dates qui est changée. Pour bien faire il faudrait encadrer tout changement de valeur de cellule d'un Application.EnableEvents = False devant et = True après le changement pour qu'il ne provoque pas un appel récursif de la procédure.
 
Vérifiez bien si la Worksheet_Change ne réagit pas à tort si c'est une des colonne de dates qui est changée. Pour bien faire il faudrait encadrer tout changement de valeur de cellule d'un Application.EnableEvents = False devant et = True après le changement pour qu'il ne provoque pas un appel récursif de la procédure.
Salut
STP j'aurai besoin de ton aide

Comment je peux exiger que la date entrée soit de la format dd-mm-aaaa
quelque soit la configuration de l'ordinateur de la personne qui entre la date


Merci d'avance
 
Bonsoir.
À votre place je mettrais une validation de donnée: Autoriser: Date.
Après du moment que la valeur de la cellule sera forcément une date et non un texte, son apparence dépendra de son format d'affichage.

Bonsoir

la date est entrée automatiquement par la macro n'est pas tapée manuellement
voici le code

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Columns("J")) Is Nothing And Target.Value <> "" Then
Target.Offset(0, 1).Value = Date
End If

merci
 
Normalement ça doit mettre une date. Vérifiez toutefois si ce n'est pas contrecarré par un format Texte préexistant sur les cellules. Certains formats incitent Excel à se sentir autorisé à prendre comme valeur de cellule autre chose que ce qu'on lui dit, ce que personnellement je déplore beaucoup …
 
Vous pouvez aussi essayer :
VB:
With Target.Offset(0, 1): .NumberFormat = "dd-mm-yyyy": .Value = Date: End With
Merci bcp pour ton code

Tu pourras stp me confirmer la quelle est bonne
*avant de l'introduire

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Columns("J")) Is Nothing And Target.Value <> "" Then
Target.Offset(0, 1).Value = Date
With Target.Offset(0, 1): .NumberFormat = "dd-mm-yyyy": .Value = Date: End With
End If

ou

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Columns("J")) Is Nothing And Target.Value <> ""
With Target.Offset(0, 1): .NumberFormat = "dd-mm-yyyy": .Value = Date: End With
End If

merci bcp
 
- 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

  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
62
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
2
Affichages
405
Retour