Problème date vba excel 2003
Résolu
jojobarre
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
jojobarre Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
jojobarre Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
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 !
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 !
A voir également:
- Problème date vba excel 2003
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Nombre de jours entre deux dates excel - Guide
4 réponses
Bonjour,
Si, dans le TCD, tes dates sont par exemple en colonne B
essaies d'ajouter cette ligne avant end sub
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;@"
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.
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
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