Merlin258413
XLDnaute Occasionnel
Bonjour a tous je suis passé par l'enregistrement auto d'une macro et je désire savoir si ce code peut etre amélioré.
Je ne sais pas si vous avez besoin du fichier excel aussi.
De plus je voudrais apporter une amélioration, j'aimerais qu'il m'affiche dans le TDC 2 les programmes non vides en vous remerciant pour votre aide et excellente journée
Sub FAE()
Sheets("FAE").Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
Sheets.Add
ActiveSheet.Name = "FAE"
Sheets("Base").Select
Range("A4").Select
ActiveCell.CurrentRegion.Select
Selection.Copy
Sheets("FAE").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("H:H").Delete
Range("A1").Select
ActiveCell.CurrentRegion.Select
ActiveWorkbook.Worksheets("FAE").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FAE").Sort.SortFields.Add Key:=Range("C2:C200"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("FAE").Sort.SortFields.Add Key:=Range("D2200"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FAE").Sort
.SetRange Range("A1:G55")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveCell.CurrentRegion.Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"FAE!R1C1:R55C7", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="FAE!R1C9", TableName:="Tableau croisé dynamique1", _
DefaultVersion:=xlPivotTableVersion14
Sheets("FAE").Select
Cells(1, 9).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"ACTIVITE")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Prestations")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant"), _
"Somme de Montant", xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Somme de Montant")
.NumberFormat = "#,##0_ ;[Red]-#,##0 "
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotSelect "", _
xlDataAndLabel, True
ActiveSheet.PivotTables("Tableau croisé dynamique1").DataPivotField.PivotItems( _
"Somme de Montant").Caption = "TOTAL"
Range("A1").Select
ActiveCell.CurrentRegion.Select
ActiveWorkbook.Worksheets("FAE").PivotTables("Tableau croisé dynamique1"). _
PivotCache.CreatePivotTable TableDestination:="FAE!R1C13", TableName:= _
"Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion14
Sheets("FAE").Select
Cells(1, 13).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Programmes")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Prestations")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"ACTIVITE")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique2").PivotFields("Montant"), _
"Somme de Montant", xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Somme de Montant")
.NumberFormat = "#,##0_ ;[Red]-#,##0 "
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotSelect "", _
xlDataAndLabel, True
ActiveSheet.PivotTables("Tableau croisé dynamique2").DataPivotField.PivotItems( _
"Somme de Montant").Caption = "TOTAL"
Range("A1").Select
End Sub
Je ne sais pas si vous avez besoin du fichier excel aussi.
De plus je voudrais apporter une amélioration, j'aimerais qu'il m'affiche dans le TDC 2 les programmes non vides en vous remerciant pour votre aide et excellente journée
Sub FAE()
Sheets("FAE").Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
Sheets.Add
ActiveSheet.Name = "FAE"
Sheets("Base").Select
Range("A4").Select
ActiveCell.CurrentRegion.Select
Selection.Copy
Sheets("FAE").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("H:H").Delete
Range("A1").Select
ActiveCell.CurrentRegion.Select
ActiveWorkbook.Worksheets("FAE").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("FAE").Sort.SortFields.Add Key:=Range("C2:C200"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("FAE").Sort.SortFields.Add Key:=Range("D2200"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("FAE").Sort
.SetRange Range("A1:G55")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveCell.CurrentRegion.Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"FAE!R1C1:R55C7", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="FAE!R1C9", TableName:="Tableau croisé dynamique1", _
DefaultVersion:=xlPivotTableVersion14
Sheets("FAE").Select
Cells(1, 9).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"ACTIVITE")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Prestations")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant"), _
"Somme de Montant", xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Somme de Montant")
.NumberFormat = "#,##0_ ;[Red]-#,##0 "
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotSelect "", _
xlDataAndLabel, True
ActiveSheet.PivotTables("Tableau croisé dynamique1").DataPivotField.PivotItems( _
"Somme de Montant").Caption = "TOTAL"
Range("A1").Select
ActiveCell.CurrentRegion.Select
ActiveWorkbook.Worksheets("FAE").PivotTables("Tableau croisé dynamique1"). _
PivotCache.CreatePivotTable TableDestination:="FAE!R1C13", TableName:= _
"Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion14
Sheets("FAE").Select
Cells(1, 13).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Programmes")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Prestations")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"ACTIVITE")
.Orientation = xlRowField
.Position = 2
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique2").PivotFields("Montant"), _
"Somme de Montant", xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Somme de Montant")
.NumberFormat = "#,##0_ ;[Red]-#,##0 "
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotSelect "", _
xlDataAndLabel, True
ActiveSheet.PivotTables("Tableau croisé dynamique2").DataPivotField.PivotItems( _
"Somme de Montant").Caption = "TOTAL"
Range("A1").Select
End Sub
Dernière édition: