lancement macro sous conditions

nina71287

XLDnaute Occasionnel
bonjour,

J'aurais besoin de votre aide sur un bout de code qui ne marche pas.

Le but est de lancer la macro que si le mois saisie dans la boite de dialogue est le bon sinon on lance une autre macro j'ai donc écris cela:

if mois="janvier" then
macro1
else
macro2
end if

Problème dans tous les cas il me lance la macro1.

Pouvez vous m'aidez svp Merci d'avance
 

gilbert_RGI

XLDnaute Barbatruc
Re : lancement macro sous conditions

bonjour,

J'aurais besoin de votre aide sur un bout de code qui ne marche pas.

Le but est de lancer la macro que si le mois saisie dans la boite de dialogue est le bon sinon on lance une autre macro j'ai donc écris cela:

if mois="janvier" then
macro1
else
macro2
end if

Problème dans tous les cas il me lance la macro1.

Pouvez vous m'aidez svp Merci d'avance

Bonjour,

voir la PJ

Salutations

Gilbert_RGI
 

Pièces jointes

  • mois_si.xls
    34 KB · Affichages: 65

kjin

XLDnaute Barbatruc
Re : lancement macro sous conditions

Bonsoir, Salut Gilbert,
J'ai compris boite de dialogue
Code:
Sub lancerpastropfort()
If UCase(InputBox("Saisir le mois", "Lancage de macro")) = "JANVIER" Then
Macro1
Else
macro2
End If
End Sub

Sub Macro1()
MsgBox "c'est janvier"
End Sub

Sub macro2()
MsgBox "c'est pas janvier"
End Sub
A+
kjin
 

nina71287

XLDnaute Occasionnel
Re : lancement macro sous conditions

merci mais j'ai oublié de préciser que j'ai évidement créer l'inputbox qui se nomme mois dans une macro a part que j'apelle par la suite de ce fait je ne vois pas grande difference avec ton code et le mien le probleme doit etre ailleur alors
merci quand meme.bonne soirée
 

kjin

XLDnaute Barbatruc
Re : lancement macro sous conditions

Re,
merci mais j'ai oublié de préciser...
Ah bon !
que j'ai évidementcréer l'inputbox qui se nomme mois dans une macro a part
tu avait oublié de préciser mais c'était évident !
que j'apelle par la suite de ce fait je ne vois pas grande difference avec ton code et le mien
Moi j'en vois une grande, c'est que mon code fonctionne !
Si la variable "mois" est déclarée au niveau d'une autre procédure...
Mais c'est évident
A+
kjin
 

nina71287

XLDnaute Occasionnel
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:D371"), reference, Range("G7:G371"))
T = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("I7:I371"))
DMT = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("Y7:Y371"))
P = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("F7:F371"))
Dscde = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("R7:R371"))


Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("MIGRATIONS").Select
R12 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("G7:G371"))
T12 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("I7:I371"))
DMT12 = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("Y7:Y371"))
P12 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("F7:F371"))
Dscde12 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("R7:R371"))


Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("ACTIVIUM").Select
R13 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("G7:G371"))
T13 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("I7:I371"))
DMT13 = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("Y7:Y371"))
P13 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("F7:F371"))
Dscde13 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("R7:R371"))


Windows("Base_Activation_INTRACALL_2009").Activate
Sheets("ACTIVIUM V@D").Select
R14 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("G7:G371"))
T14 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("I7:I371"))
DMT14 = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("Y7:Y371"))
P14 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("F7:F371"))
Dscde14 = Application.WorksheetFunction.SumIf(Range("D7:D371"), 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:D371"), reference, Range("H7:H371"))
T15 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("K7:K371"))
DMT15 = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("S7:S371"))
P15 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("G7:G371"))
Dscde15 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("Q7:Q371"))
DBR15 = Application.WorksheetFunction.SumIf(Range("D7:D371"), 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:D371"), reference, Range("H7:H371"))
T17 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("K7:K371"))
DMT17 = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("S7:S371"))
P17 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("G7:G371"))
Dscde17 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("Q7:Q371"))
DBR17 = Application.WorksheetFunction.SumIf(Range("D7:D371"), 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:D371"), reference, Range("H7:H371"))
T16 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("K7:K371"))
DMT16 = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("S7:S371"))
P16 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("G7:G371"))
Dscde16 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("Q7:Q371"))
DBR16 = Application.WorksheetFunction.SumIf(Range("D7:D371"), 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:D371"), reference, Range("G7:G371"))
T = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("I7:I371"))
DMT = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("Y7:Y371"))
P = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("F7:F371"))
Dscde = Application.WorksheetFunction.SumIf(Range("D7:D371"), 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:D371"), reference, Range("H7:H371"))
T18 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("K7:K371"))
DMT18 = Application.WorksheetFunction.AverageIf(Range("D7:D371"), reference, Range("S7:S371"))
P18 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("G7:G371"))
Dscde18 = Application.WorksheetFunction.SumIf(Range("D7:D371"), reference, Range("Q7:Q371"))
DBR18 = Application.WorksheetFunction.SumIf(Range("D7:D371"), 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
 

Discussions similaires

Réponses
2
Affichages
491

Statistiques des forums

Discussions
312 272
Messages
2 086 691
Membres
103 372
dernier inscrit
BibiCh