Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Insertion TCD

5 réponses
Avatar
JLuc69
Salut le groupe,

Pour une petite application, on r=E9cup=E8re des donn=E9es d'une GPAO par u=
n export vers Excel. Pour synth=E9tiser ces donn=E9es, on doit trier ces do=
nn=E9es et cr=E9er un TCD.
Comme on devrait avoir =E0 le faire tous les jours, j'ai tent=E9 de cr=E9er=
une macro dans le classeur de macros personnelles (perso.xls, si celui ci =
s'appelle toujours ainsi dans Excel 2007).
Malheureusement, lorsqu'on relance la macro, on a une erreur d'ex=E9cution =
5 :
"Argument ou appel de proc=E9dure incorrect" sur la ligne de cr=E9ation du =
TCD.
Je pensais qu'il s'agissait d'un probl=E8me de focus sur le classeur, mais =
non car le tri de d=E9part marche bien.

Le code de la macro incrimin=E9e :

Sub Pointage()
'
' Pointage Macro
'
' Touche de raccourci du clavier: Ctrl+n
'
Range("G2").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=3DRange("G=
2"), _
SortOn:=3DxlSortOnValues, Order:=3DxlAscending, DataOption:=3DxlSor=
tNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:I132")
.Header =3D xlNo
.MatchCase =3D False
.Orientation =3D xlTopToBottom
.SortMethod =3D xlPinYin
.Apply
End With
'**************************************************************************=
****
'**************** PARTIE INCRIMINEE ***************************************=
****
'**************************************************************************=
****
ActiveWorkbook.PivotCaches.Create(SourceType:=3DxlDatabase, SourceData:=
=3D _
"Sheet1!L1C1:L132C9", Version:=3DxlPivotTableVersion10).CreatePivot=
Table _
TableDestination:=3D"Sheet1!L2C11", TableName:=3D"Tableau crois=E9 =
dynamique2", _
DefaultVersion:=3DxlPivotTableVersion10
'**************************************************************************=
****
'**************** FIN PARTIE INCRIMINEE ***********************************=
****
'**************************************************************************=
****
Sheets("Sheet1").Select
Cells(2, 11).Select
With ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").PivotFields=
("DATE_OP" _
)
.Orientation =3D xlRowField
.Position =3D 1
End With
With ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").PivotFields=
( _
"NOM_OPERATEUR")
.Orientation =3D xlRowField
.Position =3D 2
End With
ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").AddDataField Act=
iveSheet. _
PivotTables("Tableau crois=E9 dynamique2").PivotFields("TPS_PREPARA=
TION"), _
"Somme de TPS_PREPARATION", xlSum
ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").AddDataField Act=
iveSheet. _
PivotTables("Tableau crois=E9 dynamique2").PivotFields("HEURE_TRAVA=
IL"), _
"Somme de HEURE_TRAVAIL", xlSum
With ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").DataPivotFi=
eld
.Orientation =3D xlColumnField
.Position =3D 1
End With
With ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").PivotFields=
("DATE_OP" _
)
.Orientation =3D xlPageField
.Position =3D 1
End With
With ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").PivotFields=
( _
"Somme de TPS_PREPARATION")
.NumberFormat =3D "0.00"
End With
With ActiveSheet.PivotTables("Tableau crois=E9 dynamique2").PivotFields=
( _
"Somme de HEURE_TRAVAIL")
.NumberFormat =3D "0.00"
End With
ActiveWorkbook.ShowPivotTableFieldList =3D False
End Sub


La macro est brute de d=E9coffrage. Pour les donn=E9es, je vais modifier po=
ur adapter le nombre de ligne.

Merci d'avance pour toute explication

5 réponses

Avatar
MichD
Bonjour,

Fichier exemple : http://cjoint.com/?CAqmCKJyHRP


MichD
--------------------------------------------------------------
Avatar
JLuc69
Merci Michel, pour ta diligence.

Je te mets le type de fichier sur lequel on doit insérrer le TCD, ce sera peut être plus simple que de tout comprendre et modifier en fonction
J'ai déjà mis le TCD pour que tu puisses voir sa composition

http://cjoint.com/data/0Aqm6nEtnjN.htm

Merci encore
Avatar
MichD
Retour de ton fichier : http://cjoint.com/?CAqpUyeyj2I

Attention : pour pouvoir sauvegarder des macros dans un
classeur, tu dois choisir dans la liste déroulante "Type de
fichier" de la fenêtre "enregistrer sous" le format .xlsm

Le code est dans le module1.

MichD
--------------------------------------------------------------
Avatar
JLuc69
Merci Michel, je regarde ça demain au travail et te tiens au courant.
Avatar
JLuc69
Merci Michel, c'est exactement ce qu'il nous fallait