Problème Macro format cellule

Bonjour,

Lorsque j'ouvre un fichier *.xlcs et que je procède au changement de format/cellule/nombre sur les colonnes C et D, pas de problème...

Lorsque je veux faire la même chose en macro, la le résultat change.....

Date saisie Date en cours
30-06-2010 28-06-2010
30-06-2010 28-06-2010
30-06-2010 28-06-2010
30-06-2010 29-06-2010
30-06-2010 25-06-2010
30-06-2010 28-06-2010
30-06-2010 25-06-2010

1ère opération Edition/remplacer :

- par /

2ème opération Format/cellule/nombre :

j/m/aa;@

En manuel, cela fonctionne......

Résultat :

Date saisie Date en cours
30/6/10 1/7/10
30/6/10 30/6/10
30/6/10 1/7/10
30/6/10 30/6/10
30/6/10 30/6/10
30/6/10 1/7/10

En automatique avec une macro enregistrée :

Date saisie Date en cours
30/06/2010 7/1/10
30/06/2010 30/06/2010
30/06/2010 7/1/10
30/06/2010 30/06/2010
30/06/2010 30/06/2010
30/06/2010 7/1/10

Cela ne fonctionne pas ???

En fait pour les dates inférieures au 10 du mois cela fonctionne et pour les autres cela reste au format texte.....

Merci de me dire si vous trouvez une explication....cela me pose des problèmes en suite sur access...

Cordialement,

Pygos

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut

    J'avais envoyé un post comme je ne le vois pas je l'envoie à nouveau.

    Je te propose cette macro à la place de la tienne.
    Sub TraitDate()

    For lig = 2 To 8

    For col = 3 To 4
    DaT = Cells(lig, col)
    jour = Int(Left(DaT, 2))
    mois = Int(Mid(DaT, 4, 2))
    annee = Int(Right(DaT, 2))
    Cells(lig, col) = jour & "/" & mois & "/" & annee
    Next col

    Next lig

    End Sub

    Cordialement Patrice67
    1. Bonjour,

      Merci pour cette macro mais malheureusement voici le résultat :

      Date saisieDate en cours
      30/6/10 28/6/10
      30/6/10 28/6/10
      30/6/10 28/6/10
      30/6/10 29/6/10
      30/6/10 25/6/10
      30/6/10 28/6/10
      30/6/10 25/6/10
      30/6/10 25/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 07/01/2010
      30/6/10 30/6/10
      30/6/10 07/01/2010
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 07/01/2010
      30/6/10 30/6/10
      30/6/10 22/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 30/6/10
      30/6/10 25/6/10
      30/6/10 25/6/10
      30/6/10 07/01/2010

      Les dates avant le 10 du mois , c'est ok ! mais après ....

      Sub DATETRAIT ()

      For lig = 2 To 32
      For col = 3 To 4
      DaT = Cells(lig, col)
      jour = Int(Left(DaT, 2))
      mois = Int(Mid(DaT, 4, 2))
      annee = Int(Right(DaT, 2))
      Cells(lig, col) = jour & "/" & mois & "/" & annee
      Next col
      Next lig

      end sub

      Merci d'avance !!
      Pygos
  2. Salut

    Essaie cette macro à la place de la tienne:

    Sub TraitDate()
    For lig = 2 To 8
    For col = 3 To 4
    DaT = Cells(lig, col)
    jour = Int(Left(DaT, 2))
    mois = Int(Mid(DaT, 4, 2))
    annee = Int(Right(DaT, 2))
    Cells(lig, col) = jour & "/" & mois & "/" & annee
    Next col
    Next lig
    End Sub

    Cordialement
    Patrice67
    1. Merci mais cela ne fonctionne pas malheureusement.....

      Voici la macro rectifiée :

      Sub Macro1()
      '
      ' Macro1 Macro
      ' Macro enregistrée le 21/12/2010 par
      '
      Range("C2:d50").Select
      Selection.Replace What:="-", Replacement:="/", LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
      Selection.NumberFormat = "m/d/yy;@"
      Range("A1").Select

      Merci d'avance,

      Pygos
      1. Bonjour pygos,

        Je pense que c'est à cause de la lecture des dates en anglais.

        français jj/mm
        anglais mm/jj

        Quand on passe par la macro, il inverse les chiffres (anglais) et la variable ne comprend pas des mois qui dépassent la valeur 12 donc renvoie en texte.

        Solution dans la macro il faut traiter la date en inversant le mois et le jour.

        Cordialement
        Patrice67