Simplification d'une suite de formules
c
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 ?