Date VBA

Résolu/Fermé
mcou - 11 juin 2012 à 09:38
 mcou - 12 juin 2012 à 11:37
Bonjour,


J'ai réalisé une macro à l'aide de l'assistant.
A un moment donné, je demande à travers un inputbox de saisir une date.
J'ai même pensé à la convertir en format date et de le mettre en format français.
Néanmoins, la valeur numérique associé à la date a "disparu" et il m'est impossible de changer le format date manuellement...
Je cherche à garder la valeur numérique et à avoir un format français.

Dans la macro, je saisie la date dans la première cellule de mon tableau (C3) et je veux que la date soit la même sur le reste de la colonne de C3 à C10000 (ou plus). Dans les cellules C2 et C1, il y a autre chose (du texte)

Voici mon bout de macro :
Range("C3").Select 'Remplie la colonne de la date de la saisie de commande
ActiveCell = InputBox("Saisir la date du jour", "DATE", Date)
ActiveCell.Value = CDate(Date)
Range("C3").Select
Selection.Copy
Range("C4").Select
ActiveSheet.Paste
Range("C3:C4").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("C3:C10000"), Type:=xlFillDefault
Columns("C:C").Select 'Change le format de la colonne en date
Selection.NumberFormat = "dd/mm/yyyy"
Columns("C:C").ColumnWidth = 10
Range("C2").Select
ActiveCell.FormulaR1C1 = "When"

3 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
12 juin 2012 à 08:42
Ce que tu dis n'est pas possible.
en utilisant ce code tu as obligatoirement une date.
Cependant l'alignement à gauche te laisse penser que tu as du texte ( je suppose).
si tu fais click droit /format de cellule ... tu verras que date est sélectionner.
pour éviter cette gène. fais ceci.


Range("C3:C10000").ClearContents   ' on efface le contenu
Range("C3:c10000").NumberFormat = "dd/mm/yyyy" ' on met le format


Range("C3").Select 'Remplie la colonne de la date de la saisie de commande
Range("C3:C10000").Value = Format(InputBox("Saisir la date du jour", "DATE", Date), "dd/mm/yyyy")
Range("C2").Value = "When"
Range("c3").Select



A+
1
Si si, ce que je dis était possible.
Ta macro fonctionne mais entre temps, j'ai trouvé une solution.

Il suffisait de remettre ma colonne C en format général avant la saisie...

Voici mon code : ange("C3").Select 'Remplie la colonne de la date de la saisie de commande
ActiveCell.NumberFormat = "General" 'Format Standard pour la cellule active
saisie = InputBox("Saisir la date du jour", "DATE", Date)
If IsDate(saisie) Then
ActiveCell.Value = CDate(saisie)
Else
MsgBox "erreur..."
Exit Sub
End If

Range("C3").Select
Selection.Copy
Range("C4").Select
ActiveSheet.Paste
Range("C3:C4").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("C3:C10000"), Type:=xlFillDefaultµ
Merci de votre aide.
0
Merci de votre aide
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
11 juin 2012 à 15:53
Sub boutdecode()

Dim maDate As Date

maDate = Format(InputBox("Saisir la date du jour", "DATE", Date), "dd/mm/yyyy")
Range("C3:C4").Value = maDate
Range("c3:c4").Copy

Range("C3:c4").AutoFill Destination:=Range("C3:C10000"), Type:=xlFillDefault
Application.CutCopyMode = False

Range("C2").Value = "When"



End Sub


pour faire simple ... je pense que tu rencontres un problème de format avec les dates.... ce que tu fais me semble juste mais compliqué....
Pour t'aider :
- en appliquant le "bout de code " que je te donne tu obtiendras des dates jj/mm/aaaa au format français.


si maintenant tu souhaites autre chose ou peut-être ai-je mal compris alors
tu m'en dis plus et je t'aiderai (si j'en suis capable) :-)

A+
0
Merci de ton aide, je galère depuis ce matin ;)
Ton boutdecode peut être encore amélioré tel que :

Range("C3").Select 'Remplie la colonne de la date de la saisie de commande
Range("C3:C10000").Value = Format(InputBox("Saisir la date du jour", "DATE", Date), "dd/mm/yyyy")
Range("C2").Value = "When"

La moitié seulement de mon problème est réglé puisqu'au final la date saisie se retrouve en format texte dans mon fichier excel et il m'est impossible de changer en date (ni'mporte quel format de date d'ailleurs, que ça soit que les chiffres, avec le nom du mois...) je ne peux pas...

Aurais-tu une solution ?
0