Bonsoir,
On m'a récemment confié une mission que mon statut d'ignare en programmation m'empêche de mener à bien.
Voilà pourquoi je sollicite votre aide.
Je dois réaliser une macro qui permettrait de créer rapidement un tableau croisé dynamique à partir d'une base de donnée.
Seulement voilà, une fois terminé, mon résultat est apparemment bourré de fautes, sans que je comprenne lesquelles.
Sub Macro2()
Range("A1:S1742" ).Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'ActiveSheet!R1C1:R1742C19" ).CreatePivotTable TableDestination:="", _
TableName:="TCD1"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).AddFields RowFields:= _
Array("Commande ", "Fournisseur ", _
"Etat ", "Données" )
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Qté " )
.Orientation = xlDataField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Qté reste " )
.Orientation = xlDataField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Qté recue " ).Orientation = xlDataField
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotSelect "", _
xlDataAndLabel, True
Range("A3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Commande " ).Orientation = xlHidden
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotSelect "", _
xlDataAndLabel, True
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).Format xlTable8
Range("B3" ).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Fournisseur " )
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Commande " )
.Orientation = xlRowField
.Position = 2
End With
Range("C3" ).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Affaire " )
.Orientation = xlRowField
.Position = 4
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Marque " )
.Orientation = xlRowField
.Position = 5
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Modèle " )
.Orientation = xlRowField
.Position = 6
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Libellé " )
.Orientation = xlRowField
.Position = 7
End With
ActiveWorkbook.ShowPivotTableFieldList = False
Range("A3:J2850" ).Select
Range("C3" ).Activate
With Selection.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Range("C3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Etat " ).Subtotals = Array(False, False, False, False, False, _
False, False, False, False, False, False, False)
Range("D3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Affaire " ).Subtotals = Array(False, False, False, False, False, _
False, False, False, False, False, False, False)
Range("E3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Marque " ).Subtotals = Array(False, False, False, False, False, _
False, False, False, False, False, False, False)
Range("F3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Modèle " ).Subtotals = Array(False, False, False, False, False, _
False, False, False, False, False, False, False)
Rows("3:3" ).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Fournisseur " ).Caption = "Supplier"
Range("B3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Commande " ).Caption = "Cmde"
Range("D3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Affaire " ).Caption = "Affaire"
Range("E3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Marque " ).Caption = "Mrq"
Range("F3" ).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
"Modèle " ).Caption = "Mod"
Columns("A:A" ).Select
Columns("A:A" ).EntireColumn.AutoFit
Columns("B:B" ).ColumnWidth = 19.14
Columns("B:B" ).EntireColumn.AutoFit
Columns("C:C" ).EntireColumn.AutoFit
Columns("D:D" ).ColumnWidth = 20
Columns("D:D" ).EntireColumn.AutoFit
Columns("E:E" ).EntireColumn.AutoFit
Columns("F:F" ).EntireColumn.AutoFit
Cells.Select
With Selection.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Range("E3" ).Select
Columns("E:E" ).ColumnWidth = 5.29
Columns("F:F" ).ColumnWidth = 5.14
Columns("D:D" ).EntireColumn.AutoFit
Columns("C:C" ).ColumnWidth = 6.43
Columns("B:B" ).ColumnWidth = 7.43
Range("A3:J1910" ).Select
Range("E3" ).Activate
Selection.Copy
Sheets.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Columns("A:A" ).ColumnWidth = 8.57
Rows("1:1" ).RowHeight = 45
Columns("B:B" ).ColumnWidth = 6.29
Columns("C:C" ).ColumnWidth = 6.71
Columns("D:D" ).EntireColumn.AutoFit
Columns("E:E" ).ColumnWidth = 5.71
Columns("F:F" ).ColumnWidth = 5.71
Columns("G:G" ).EntireColumn.AutoFit
Columns("H:J" ).Select
Range("J1" ).Activate
Selection.ColumnWidth = 7.57
Rows("2:2" ).Select
ActiveWindow.FreezePanes = True
End Sub
Mes fautes sont si atroces ? :-/