Bonjour,
J' ai un problème de performance de mon code
J' ai un fichier CSV que j' intègre dans un fichier, ensuite il genére un tableau crois' dynamique.
Le programme marche mais il est lent, en faisant pas à pas j' ai constaté que les lenteurs venaient de la partie où il supprime les Totaux des lignes
Mon problème, je n' arrive pas en enlever ses lignes lors de la création du tableau croisé..
J' ai réalisé mon code avec l'enregistreur de macro
Voici le code :
Merci de votre aide
J' ai un problème de performance de mon code
J' ai un fichier CSV que j' intègre dans un fichier, ensuite il genére un tableau crois' dynamique.
Le programme marche mais il est lent, en faisant pas à pas j' ai constaté que les lenteurs venaient de la partie où il supprime les Totaux des lignes
Mon problème, je n' arrive pas en enlever ses lignes lors de la création du tableau croisé..
J' ai réalisé mon code avec l'enregistreur de macro
Voici le code :
Code:
Sub CSV()
'
' CSV Macro
' Macro enregistrée le 02/05/2010 par FA
'
'Selection de l onglet extration_fg
Sheets("extraction_fg").Select
Cells.Select
'Supprime les données de la feuille
Selection.ClearContents
Range("A1").Select
'Ouverture fichier CSV
Workbooks.Open Filename:= _
"C:\extraction\extraction_fg.csv"
Columns("A:A").Select
Selection.Copy
Windows("Classeur2.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
'Conversion données CSV
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), _
Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array( _
33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1)) _
, TrailingMinusNumbers:=True
' tableau croisé
Range("A1").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"extraction_fg!R1C1:R31584C38").CreatePivotTable TableDestination:="", _
TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.ColumnGrand = False
.RowGrand = False
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Nom Ag." _
)
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Code Ag.")
.Orientation = xlRowField
.Position = 2
End With
ActiveWindow.SmallScroll Down:=3
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Fournisseur Nom")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Fournisseur Code")
.Orientation = xlRowField
.Position = 4
End With
ActiveWindow.SmallScroll Down:=-9
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Statut")
.Orientation = xlRowField
.Position = 5
End With
ActiveWindow.SmallScroll Down:=-6
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Date Commande")
.Orientation = xlRowField
.Position = 6
End With
ActiveWindow.SmallScroll Down:=3
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Ref Commande")
.Orientation = xlRowField
.Position = 7
End With
ActiveWindow.SmallScroll Down:=3
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Personne")
.Orientation = xlRowField
.Position = 8
End With
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant Commande"), _
"Somme de Montant Commande", xlSum
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
'[COLOR="Red"]Cette partie rend le traitement long[/COLOR]
Range("C10").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Fournisseur Nom").Subtotals = Array(False, False, False, False, False, False, False, _
False, False, False, False, False)
Range("D9").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Fournisseur Code").Subtotals = Array(False, False, False, False, False, False, False _
, False, False, False, False, False)
Range("E8").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Statut"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Range("F10").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Date Commande").Subtotals = Array(False, False, False, False, False, False, False, _
False, False, False, False, False)
Range("G8").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ref Commande" _
).Subtotals = Array(False, False, False, False, False, False, False, False, False, False _
, False, False)
Range("B7").Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Code Ag."). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nom Region")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Code Sté")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Nom Sté" _
)
.Orientation = xlPageField
.Position = 1
End With
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
'Referme le fichier CSV
Windows("extraction_fg.csv").Activate
ActiveWindow.Close
End Sub
Merci de votre aide
Dernière édition: