Mise en forme date

cs_falafala Messages postés 74 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 23 décembre 2013 - 8 sept. 2006 à 15:20
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006 - 14 sept. 2006 à 09:41
Bonjour à tous.

La macro suivante est censé chercher une date dans la case I2 et affecter cette date dans l'un des champs d'un tableau dynamique.

Or, j ai un petit soucis: lorsque dans I2 est inscrit 16/06/2006, la macro va choisir 6/16/2006 dans le tableau dynamique, date bien sur qui n'existe pas.

jour = Range("I2").Value
 
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
        CurrentPage = jour

Est ce que qq un sait pq?? Je vous remercie par avance/

10 réponses

cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
8 sept. 2006 à 15:31
Bonjour,


pour information, le format date des USA est : "mois/jour/année", et ce format est celui par défaut en vba
0
cs_falafala Messages postés 74 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 23 décembre 2013
8 sept. 2006 à 15:38
Donc il faudrait que je repasse toutes mes dates au format US?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 sept. 2006 à 16:41
Salut,

    Dim dJour As Date
   
dJour = CDate(Range("I2").Value)
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
        CurrentPage = dJour

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_falafala Messages postés 74 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 23 décembre 2013
8 sept. 2006 à 16:58
Merci pour la réponse mais je suis désolé, ca n'a pas l'air de marcher
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 sept. 2006 à 17:07
je l'ai essayé comme ça, en simple :
    Dim dJour As Date
   
dJour = CDate(Range("A2").Value)
Range("B2").Value = dJour
' et dans A2 : 08/09/2006
et ça fonctionne, mais en tableau croisé dynamique, je ne sais pas si c'est différent.

As tu un message d'erreur, ou encore le même format ?
Quel est le format de la cellule de destination ?

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_falafala Messages postés 74 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 23 décembre 2013
8 sept. 2006 à 17:15
Pas de message d'erreur, juste le format US.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 sept. 2006 à 17:21
Et avec une méthode, pas très bien, certe, mais qui peut dépanner si fonctionne :

    Dim dJour As Date
   
dJour = CDate(Range("I2").Value)
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
        CurrentPage = Format(dJour, "mm/dd/yyyy")

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_falafala Messages postés 74 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 23 décembre 2013
8 sept. 2006 à 17:45
Ben ca ne marche toujours pas.
0
cs_falafala Messages postés 74 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 23 décembre 2013
13 sept. 2006 à 16:46
Petit up.
Il n'y a personne qui sait ou est le pb??
0
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
14 sept. 2006 à 09:41
bonjour

 ceci marche chez moi :
jour = Range("I2").Value
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
        CurrentPage = Format(jour, "dd/mm/yyyy")

explication : comme je le disais précédemment VBA travaille avec le format date US mais dans certaines fonction, il tient compte du format de date paramètré dans Windows.

Ici, le tableau croisé dynamique a convertit en chaine de caratères la donnée "date" (mais dans le format paramétré dans windows i.e fançais)

la propriété CurrentPage demande donc une variable String qui doit être dans le même format que le format précédent)


en mettant seulement    CurrentPage = jour
jour étant une donnée Date, CurrentPage attendant une donnée String, VBA transforme avec son propre format de date. Cette ligne revient à la même chose que       CurrentPage = Format(jour, "mm/dd/yyyy")   or ce n'est pas le format souhaité

J'éspère avoir été clair... (manque de sommeil ...)
0
Rejoignez-nous