Date folle VBA

Bonjour, j'ai un tableau dans lequel j'entre manuellement des dates.

Déjà, c'est une nouvelle page et quand je rentre 1/1 dans 4 cellules l'une en dessous de l'autre, j'ai :

1-janv

janv-15 (?!)

1-janv

1-janv

Je voudrais taper 2/3 et qu'il soit marqué 2 mars 2015.

J'ai essayé avec un truc du genre :

ActiveCell.Value = (Format(ActiveCell, "dd/mm/yyyy ")) mais rien n'y fait.

(Je les entre manuellement, mais un code vba les trie, je pensais changer le format à ce moment là)

Bonjour,

Ci-joint ton fichier test ...

4test-alenbix.xlsm (12.47 Ko)

Le problème c'est que je demande la date par inputbox, et qu'elle se met en dessous des autres avant d'être trier.

Et la colonne des dates peut se décaler (insertion d'une autre).

Donc il me faudrait un code vba qui récupérer ma saisie grâce à l'inputbox (en type 2/3) et que ça m'écrive 02/03/année)

Merci de ton aide

Du genre :

Private Sub CommandButton21_Click()

    Range("DateReport").Select

    Do While Not (IsEmpty(ActiveCell)) 'je cherche une ligne vide après les entêtes'
    Selection.Offset(1, 0).Select
    Lastligne = ActiveCell.Row

    Loop
    ActiveCell.NumberFormat = Format(Date, "dd mm yyyy")
       Cells(Lastligne, Range("DateReport").Column) = InputBox("e")

    

mais la date s'écrit sans "/" ^^ et si je mets des / dans format, ça bug.

En fait oublie le code, ça écrit la date du jour x)

Re,

Effectivement ... le problème est différent ... difficile de deviner qu'il s'agit d'un formulaire ...

Quel est le code que tu utilises pour valider la saisie de la date ...???

Pour valider la date?

Je la demande juste avec un

inputbox("date?")==> on tape en format 2/3 généralement.

Et je veux l'écrire en format 02/03/2015 dans la cellule active.

Que se passe-t-il si la saisie dans l'inputbox est 24/13 ...???

Est-ce cela ... la date folle ....

Le fichier est pour des adultes, théoriquement il vont pas se tromper ^^.

Maintenant, si on sait ouvrir un calendrier, je ne demande pas mieux.


Private Sub CommandButton21_Click()

'oblige de transformer les dates en dd/mm/yyyy ici car ça bug dans le module 3 de tri'
    Range("DateReport").Select 'je pars de la case DatePunition'

    Do While Not (IsEmpty(ActiveCell)) 'je cherche une ligne vide après les entêtes'
    Selection.Offset(1, 0).Select
    Lastligne = ActiveCell.Row

    Loop
    ActiveCell.NumberFormat = Dâte
       Cells(Lastligne, Range("DateReport").Column) = Format(InputBox("e"), "mm/dd/yyyy")

 '--------------------------------------------------------------------------------'

End Sub

ça fonctionne comme je veux, mais je suis pas certain que la date soit une date et pas du texte.

Bonsoir le fil, bonsoir le forum,

Arf ! La théorie sur les adultes qui ne se trompent pas...

Essaie comme ça. Avec le format américain au départ, tu récupères la date au format défini dans la cellule à l'arrivée :

Sub Macro1()
Dim D As String 'déclare la variable D
Dim DA As Date 'décalre la variable DA

D = InputBox("Date ? (format j/m)") 'définit la boîte d'entrée D
If D = "" Then Exit Sub 'si D n'est pas renseignée ou bouton "Annuler" sort de la procédure
DA = Year(Date) & "-" & Split(D, "/")(1) & "-" & Split(D, "/")(0) 'définit la date DA (format américain YYYY-MM-DD)
Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = DA 'renvoie DA dabs la première ligne vide de la colone A (à adapter)
End Sub

Merci beaucoup je vais m'en inspirer.

Rechercher des sujets similaires à "date folle vba"