Simplification d'une suite de formules

Bonjour,

Je me permets de poster ici ma situation. Je suis un débutant sur excel et en vba.

Dans ma démarche pour calculez les % de référence dans une colonne sur une autre feuille avec des variables changées par un inputbox, j'ai écris une suite de formules. Celles ci, bien qu'elles fassent le job, me paraissent longues, inélégantes et peu / pas flexibles.

Je cherche donc à les simplifier mais je ne sais pas encore comment, pourriez vous m'aider ?

Voici les formules :

Dim Uni As String: Dim Dip As String

Uni = InputBox("Sélectionnez une Université, ex : Université Paris-Nanterre")
Dip = InputBox("Sélectionnez un diplôme, ex : M2 Droit des relations internationales et de l'union européenne")

'Promotion 2016-2017
    'IsP à 6 mois

Range("B3").Value = Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "Emploi") / Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "*")
Range("B4").Value = Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "Stage") / Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "*")
Range("B5").Value = Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "Doctorat") / Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "*")
Range("B6").Value = Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "LLM") / Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "*")
Range("B7").Value = Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "Master") / Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "*")
Range("B8").Value = Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "Préparation de concours") / Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "*")
Range("B9").Value = Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "Recherche d'emploi") / Application.WorksheetFunction.CountIfs(Worksheets("BdDE_M2").Range("B:B"), "=" & Uni, Worksheets("BdDE_M2").Range("C:C"), "=" & Dip, Worksheets("BdDE_M2").Range("D:D"), "=" & "2016-2017", Worksheets("BdDE_M2").Range("F:F"), "=" & "*")

Range("B3:E9").Select
    Selection.NumberFormat = "0.0"
    Selection.Style = "Percent"

Merci beaucoup,

Chamiownu

Bonjour

Pourquoi ne pas plutôt envisager un TCD que tous ces NB.SI et piloter des segments à partir des choix ?

Rechercher des sujets similaires à "simplification suite formules"