Date VBA

Résolu
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"

3 réponses

  1. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
    1. mcou
       
      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
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
    1. mcou
       
      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