Re : lancement macro sous conditions
dsl je ne voulais pas te vexer c'est juste que je n'arrive pas a voir la difference je te mets mon code exact car celui que j'ai mis en exemple est tres simplifié.
Sub recherche_mois()
m = InputBox("Indiquez le mois")
End Sub
Sub activation()
recherche_mois j'appelle la macro mois
R = 0
T = 0
DMT = 0
P = 0
Dscde = 0
DBR = 0
QS = 0
If m = "janvier" Then
reference = 1
ElseIf m = "février" Then
reference = 2
ElseIf m = "mars" Then
reference = 3
ElseIf m = "avril" Then
reference = 4
ElseIf m = "mai" Then
reference = 5
ElseIf m = "juin" Then
reference = 6
ElseIf m = "juillet" Then
reference = 7
ElseIf m = "août" Then
reference = 8
ElseIf m = "septembre" Then
reference = 9
ElseIf m = "octobre" Then
reference = 10
ElseIf m = "novembre" Then
reference = 11
ElseIf m = "décembre" Then
reference = 12
End If
If m = "janvier" Or m = "février" Or m = "mars" Then
Workbooks.Open Filename:="X:\STATISTIQUE\INTRACALL\ACTIVATION\Base_Activation_INTRACALL_2009.xls"
Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("ACTIVATION").Select
R = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
T = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
DMT = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("Y7:Y371"))
P = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("F7:F371"))
Dscde = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("R7:R371"))
Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("MIGRATIONS").Select
R12 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
T12 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
DMT12 = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("Y7:Y371"))
P12 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("F7:F371"))
Dscde12 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("R7:R371"))
Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("ACTIVIUM").Select
R13 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
T13 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
DMT13 = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("Y7:Y371"))
P13 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("F7:F371"))
Dscde13 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("R7:R371"))
Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("ACTIVIUM
V@D").Select
R14 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
T14 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
DMT14 = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("Y7:Y371"))
P14 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("F7:F371"))
Dscde14 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("R7:R371"))
Windows("Base_Activation_INTRACALL_2009").Close
End If
If m = "avril" Or m = "mai" Or m = "juin" Then
Workbooks.Open Filename:="X:\STATISTIQUE\TELEPERFORMANCE\ACTIVATION\Reporting\Bases\Base_ACTIVATION_TP_2009.xls"
Windows("Base_ACTIVATION_TP_2009").Activate
Sheets("ACTIVATION_FAI_TP").Select
R15 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("H7:H371"))
T15 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("K7:K371"))
DMT15 = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("S7:S371"))
P15 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
Dscde15 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("Q7:Q371"))
DBR15 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
End If
If m = "mars" Or m = "avril" Or m = "mai" Or m = "juin" Then
Workbooks.Open Filename:="X:\STATISTIQUE\TELEPERFORMANCE\ACTIVATION\Reporting\Bases\Base_ACTIVATION_TP_2009.xls"
Windows("Base_ACTIVATION_TP_2009").Activate
Sheets("ACTIVATION_REPRISE_TP").Select
R17 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("H7:H371"))
T17 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("K7:K371"))
DMT17 = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("S7:S371"))
P17 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
Dscde17 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("Q7:Q371"))
DBR17 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
End If
If m = "avril" Or m = "mai" Or m = "juin" Then
Windows("Base_ACTIVATION_TP_2009").Activate
Sheets("MIGRATION_TP").Select
R16 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("H7:H371"))
T16 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("K7:K371"))
DMT16 = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("S7:S371"))
P16 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
Dscde16 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("Q7:Q371"))
DBR16 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
Windows("Base_ACTIVATION_TP_2009.xls").Close
End If
R = R + R12 + R13 + R14 + R15 + R16 + R17
T = T + T12 + T13 + T14 + R15 + R16 + R17
DMT = Application.WorksheetFunction.Average(DMT, DMT12, DMT13, DMT14, DMT15, DMT16, DMT17)
P = P + P12 + P13 + P14 + P15 + P16 + P17
Dscde = Dscde + Dscde12 + Dscde13 + Dscde14 + Dscde15 + Dscde16 + Dscde17
'qualité prévue
If P > R Then
QS = T / R
Else
QS = T / P
End If
Windows("auto_fiche synoptique bis.xls").Activate
Sheets(m).Select
Range("E44").Value = R - Dscde
Range("G44").Value = T
Range("I44").Value = QS
Range("M44").Value = DMT
Range("O44").Value = DBR
Range("K44").Value = (DBR + T) / (R - Dscde)
If m = "janvier" Then
SAV_CDA
Else
activation_Pro
End If
SAV_CDA
End Sub
'*************************************************************activation_pro**********************************
Sub activation_Pro()
R = 0
T = 0
DMT = 0
P = 0
Dscde = 0
DBR = 0
QS = 0
If m = "janvier" Then
reference = 1
ElseIf m = "février" Then
reference = 2
ElseIf m = "mars" Then
reference = 3
ElseIf m = "avril" Then
reference = 4
ElseIf m = "mai" Then
reference = 5
ElseIf m = "juin" Then
reference = 6
ElseIf m = "juillet" Then
reference = 7
ElseIf m = "août" Then
reference = 8
ElseIf m = "septembre" Then
reference = 9
ElseIf m = "octobre" Then
reference = 10
ElseIf m = "novembre" Then
reference = 11
ElseIf m = "décembre" Then
reference = 12
End If
If m = "février" Or m = "mars" Or m = "avril" Or m = "mai" Then
Workbooks.Open Filename:="X:\STATISTIQUE\INTRACALL\ACTIVATION\Base_Activation_INTRACALL_2009.xls"
Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("PRO SIREN").Select
R = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
T = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
DMT = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("Y7:Y371"))
P = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("F7:F371"))
Dscde = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("R7:R371"))
Windows("Base_Activation_INTRACALL_2009").Close
End If
If m = "avril" Or m = "mai" Or m = "juin" Then
Workbooks.Open Filename:="X:\STATISTIQUE\TELEPERFORMANCE\ACTIVATION\Reporting\Bases\Base_ACTIVATION_TP_2009.xls"
Windows("Base_ACTIVATION_TP_2009").Activate
Sheets("ACTIVATION_FAI_PRO_TP").Select
R18 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("H7:H371"))
T18 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("K7:K371"))
DMT18 = Application.WorksheetFunction.AverageIf(Range("D7
371"), reference, Range("S7:S371"))
P18 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("G7:G371"))
Dscde18 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("Q7:Q371"))
DBR18 = Application.WorksheetFunction.SumIf(Range("D7
371"), reference, Range("I7:I371"))
Windows("Base_ACTIVATION_TP_2009.xls").Close
End If
If m = "janvier" Then
R = 0
T = 0
DMT = 0
P = 0
Dscde = 0
DBR = 0
QS = 0
PEC = 0
Else
R = R + R18
T = T + T18
DMT = Application.WorksheetFunction.Average(DMT, DMT18)
P = P + P18
Dscde = Dscde + Dscde18
PEC = (DBR + T) / (R - Dscde)
'qualité prévue
If P > R Or R > 0 Or T > 0 Then
QS = T / R
Else
QS = T / P
End If
End If
Windows("auto_fiche synoptique bis.xls").Activate
Sheets(m).Select
Range("E45").Value = R - Dscde
Range("G45").Value = T
Range("I45").Value = QS
Range("K45").Value = (T) / (R - Dscde)
Range("M45").Value = DMT
End Sub
dc je pense que mon erreur vient de ou je place cette condition non?
merci pr ta reponse