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.
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
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
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
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
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
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