Bonjour,
J'ai effectuer une synthétisation d'un gros tableau de données. Désormais j'affiche plusieurs graphiques, l'utilisateur peut à l'aide du filtre voir plusieurs facteurs.
Mon objectif serait de lier tous ces graphiques. Par exemple l'utilisateur sélectionne un "nom" et les graphiques définissent le filtre choisit.
Voici le code actuel, les graphiques sont simples. La liaison en VBA n'est peut être pas nécessaire...
Sub Macro1()
'
' Macro1 Macro
Dim start As Single
start = Timer
ChDir "N:\xxxxxxxxxxxx"
Workbooks.Open Filename:="N:\xxxxxxxxxxxxxx"
Cells.Select
Selection.Copy
Windows("Bilan_2016.xlsm").Activate
Worksheets("TableauSAP").Activate
Worksheets("TableauSAP").Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks("Export.MHTML").Close
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("O2").FormulaR1C1 = "=IF(TableauSAP!C[-8]=""INTT ACEX"",IF(RC[-14]="""","""",IF(RC[-14]=R[-1]C[-14],IF(RC[-10]=R[-1]C[-10],0,IF(LEN(RC[-7])>=2,2,1)),0)),0)"
Range("P2").FormulaR1C1 = "=IF(TableauSAP!C[-9]=""INTO"",IF(RC[-14]="""","""",IF(RC[-14]=R[-1]C[-14],IF(RC[-10]=R[-1]C[-10],1,"" ""),0)),"" "")"
Range("Q2").FormulaR1C1 = _
"=IF(RC[-4]=""Y2"",IF(ISBLANK(RC[-11]),0,IF(TableauSAP!C[-10]=""INTT ACEX"",IF(RC[-16]="""","""",IF(RC[-16]=R[-1]C[-16],IF(RC[-12]=R[-1]C[-12],0,IF([@[Début de la panne]]-[@[Terminée le]]=0,1,IF([@[Début de la panne]]-[@[Terminée le]]<0,2,1))),IF(RC[-12]=R[-1]C[-12],0,IF([@[Début de la panne]]-[@[Terminée le]]=0,1,IF([@[Début de la panne]]-[@[Terminée le]]<0,2,1)))))" & _
",IF(TableauSAP!C[-10]=""INTT"",IF([@[Début de la panne]]-[@[Terminée le]]=0,1,IF([@[Début de la panne]]-[@[Terminée le]]<0,2,1)),0))),0)" & _
""
ActiveWorkbook.Worksheets("TableauSAP").ListObjects("Tableau1").Sort.SortFields _
.Clear
'filtrage par statut système / peu utile mais visuellement plus clair
ActiveWorkbook.Worksheets("TableauSAP").ListObjects("Tableau1").Sort.SortFields _
.Add Key:=Columns("G:G"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("TableauSAP").ListObjects("Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("Global").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox "durée du traitement: " & Timer - start & " secondes"
End Sub
Merci d'avance