Problème date vba excel 2003

[Résolu/Fermé]
Signaler
Messages postés
8
Date d'inscription
vendredi 22 février 2013
Statut
Membre
Dernière intervention
30 janvier 2014
-
Messages postés
8
Date d'inscription
vendredi 22 février 2013
Statut
Membre
Dernière intervention
30 janvier 2014
-
Bonjour à tous,

Voilà je suis en train de créer une macro qui permet de réaliser un tableau dynamique croisé automatiquement.
Le problème c'est qu'une des données utilisée est la date, et lorsque mon tableau dynamique est réalisée une partie des dates est au format français (jj/mm/yyyy), l'autre au format américain (mm/jj/yyyy) dans le tableau.
Je voudrais qu'elles soient toutes au format français.

Je vous mets mon fichier pour que vous puissiez regarder.

Sub Macro5()
'
' Macro5 Macro
'
'



Range("I2:I501").Select
Selection.TextToColumns Destination:=Range("I2"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(5, 1)), TrailingMinusNumbers:=True
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("B2:B501").Select ' date
Selection.TextToColumns Destination:=Range("B2"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(8, 1)), TrailingMinusNumbers:=True
Range("I2:I501").Select
Selection.TextToColumns Destination:=Range("I2"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Range("B1:I501").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!R1C2:R501C9").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique9", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields("su/scde" _
)
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields( _
"date de sortie")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields( _
"nom prenom")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique9").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique9").PivotFields("dose ventilée"), _
"Somme de dose ventilée", xlSum
Application.CommandBars("PivotTable").Visible = False
ActiveWorkbook.ShowPivotTableFieldList = False

End Sub

Merci d'avance pour ceux qui prendront le temps de regarder !

4 réponses

Messages postés
16501
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 septembre 2021
3 214
Bonjour,


Si, dans le TCD, tes dates sont par exemple en colonne B
essaies d'ajouter cette ligne avant end sub
Columns("B:B").NumberFormat = "dd/mm/yy;@"
ou mieux, partir de la 1° ligne des dates par exemple (B5 au hasard)

Range("B5:B200").NumberFormat = "dd/mm/yy;@"
Messages postés
8
Date d'inscription
vendredi 22 février 2013
Statut
Membre
Dernière intervention
30 janvier 2014

J'avais déjà essayé ça ne fonctionne pas, dans le TCD les dates dont le jour est inférieur à 13 passent toujours au format américain alors que les autres sont bien au format français.
Messages postés
24174
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
9 septembre 2021
6 880
Bonjour,
Salut Michel,

essaie avec :
... = datevalue(ta_date)

eric

PS: pas lu ton code, en texte ça ne donne pas envie de lire.
Déposer un fichier .xls réduit au nécessaire et avec les explications détaillées sur cjoint.com et coller ici le lien fourni.

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Messages postés
8
Date d'inscription
vendredi 22 février 2013
Statut
Membre
Dernière intervention
30 janvier 2014

OK c'est bon ça marche.
Merci eriiic, merci Michel.

Bonnes fêtes à vous.