Date VBA
Résolu
mcou
-
mcou -
mcou -
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"
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
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.
A+
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+
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+
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 ?
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 ?
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.