Format date non pris en compte sur Excel VBA vs formule

Résolu/Fermé
Amir - 29 mars 2023 à 18:03
 Amir - 29 mars 2023 à 18:35

Bonjour,

Je vais essayer d'être clair, j'ai une TextBox dans un UserForm qui à la validation renseigne une date dans un tableau (entre autres). 

Pour cela j'utilise un calendrier en macro (style DatePicker). 

La date est bien recopiée et avec le bon format mais ma formule ne la prend pas en compte ... 

Voici le morceau de mon code qui envoie la date, j'ai essayé également sans mise en forme du format mais avec le même résultat

If TextBox5 = "" Then
Sheets("Indemnités_km").Range("A303").Select
Selection.End(xlUp).Offset(1, 0) = UserForm7.TextBox5 = ""
Else
Sheets("Indemnités_km").Range("A303").Select
Selection.End(xlUp).Offset(1, 0) = Format(TextBox5.Value, "dd/mm/yyyy")
End If

Je vous mets quelques captures ci-dessous mais je pense que le souci vient de la macro. Peut-être en utilisant plutôt la fonction DateValue ? Mais je ne sais pas trop comment l'adapter ... 

Pour le calendrier, j'ai supprimé les autres formats car plusieurs utilisateurs et je voulais éviter les erreurs. Voyez aussi ci-dessous, le tri proposé est alphabétique et non chronologique et les dates ne sont pas dans 2023 ... 

Les 2 seules dates reconnues sont celles que j'ai retapé à la main ... 

Pour info, je n'ai pour l'instant que des données que dans le tableau 35

A votre dispo si questions et merci par avance


Windows / Chrome 111.0.0.0

A voir également:

3 réponses

Re-bonjour, 

en fait je viens de me rendre compte que si je double-clic dans la cellule et qu'ensuite j'en sélectionne une autre c'est ok. 

Un problème que j'avais déjà eu au boulot avec des extractions depuis SAP- mais je ne sais plus comment j'avais corrigé ça :(

0

Encore moi, après quelques recherches je pense avoir compris : 

mes données sont renseignées par la macro au format "texte" puis converties au format "date" et le double-clic en permet l'actualisation ... 

effectivement mon bout de code est pas terrible mais j'apprends aussi comme ça ... tout doucement en me plantant. 

Maintenant que je connais la cause il faut que je trouve un moyen de corriger. 

Si qqun peut m'aider à réécrire mon code SVP ? Merci

0

et voilà j'ai trouvé et je me réponds à moi-même une fois de plus :D

donc si ça peut servir j'ai simplifié comme ça et c'est ok ! 

Sheets("Indemnités_km").Range("A303").Select
Selection.End(xlUp).Offset(1, 0) = CDate(TextBox5)

0