Liste déroulante avec dates (trois critères)

Bonjour,

Veuillez trouver ci-joint mon occupation du moment, du moins une synthèse pour une question de rapidité.

17exemple.xlsx (11.37 Ko)

Je souhaite, à partir d'un tableau de données, laissez le choix à l'utilisateur de trois critères sous forme de liste déroulante ( le tableau est filtré) puis des TCD/formules/tableaux normaux seront réalisé sur une feuille différente.

Sur la feuille de choix des critères plusieurs graphiques vont permettre à l'utilisateur d'avoir un visuel suivant les critères rentrés SEULEMENT.

Je copie et colle le contenu du tableau originel dans la feuille 1 de mon fichier excel via une VBA puis applique mes formules, le reste est fait de façon basics par l'intermédiaire de formules...etc ( temps de calculs 50 sec pour +- 15000 lignes).

Le code par curiosité:

Sub Macro1()
'
' Macro1 Macro

Dim start As Single

start = Timer

    ChDir "C:\"
    Workbooks.Open Filename:=""
    Cells.Select
    Selection.Copy
    Windows("Bilan_2017.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

 ' On applicque deux formules sur la colonne N = Double cloture et la colonne O = INTO et Q= Y2 retard ou non

    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("uuuu").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("uuuu").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 du temps que vous m'accordez !

Je reste disponible pour tout renseignement

Est il préférable de partie sur du code VBA ?

Finalement j'ai utilisé les segments, rapide, simple et efficace !

https://forum.excel-pratique.com/excel/1-choix-plusieurs-graphiques-t87919.html

Rechercher des sujets similaires à "liste deroulante dates trois criteres"