Lancer une macro en fonction de la valeur d'une cellule.

macropadawan

XLDnaute Nouveau
Bonjour à tous,

Je suis tout nouveau sur le forum.

Je bricole un peu de vba et j'ai besoin de votre aide.

J'ai dans 1 modules 4 macros différentes permettant d'imprimer 4 jeux différents d'onglets en PDF.

Je veux un bouton sur mon fichier excel me permettant de lancer une de ces 4 macros en fonction de la valeur d'une cellule.

Si la cellule X14 = 1 lancer la macro PDF_1
Si la cellule X14 = 2 lancer la macro PDF_2
Si la cellule X14 = 3 lancer la macro PDF_3
Si la cellule X14 = 4 lancer la macro PDF_4

J'ai besoin de vous pour le code de la macro liée au bouton qui va choisir quelle macro appeller.

Voici le code d'une des 4 macros :

Sub PDF_1()
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect ("MMT2014")

Sheets("Express et Premiums").Visible = True
Sheets("Economy & Eco12").Visible = True
Sheets("int_FRANCE").Visible = True
Sheets("Additionnal information").Visible = True
Sheets("General information").Visible = True
Sheets("Dest&Delais").Visible = True

Sheets(Array("Express et Premiums", "Economy & Eco12", "int_FRANCE", "Additionnal information", "General information", "Dest&Delais")).Select
Sheets("Express et Premiums").Activate


On Error GoTo Err_already
Chemin = "D:" & [T174].Value & "_Offre_Commerciale" & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Sheets("PLAY - RESUME").Select

Sheets("Express et Premiums").Visible = False
Sheets("Economy & Eco12").Visible = False
Sheets("int_FRANCE").Visible = False
Sheets("Additionnal information").Visible = False
Sheets("General information").Visible = False
Sheets("Dest&Delais").Visible = False

ActiveWorkbook.Protect ("MMT2014")
Exit Sub

Err_already:
MsgBox ("Ce fichier éxiste déjà sur votre D, veuillez le supprimer avant de le regénérer."), , "Fichier existant"
End Sub

Une solution ??
 

Caillou

XLDnaute Impliqué
Re : Lancer une macro en fonction de la valeur d'une cellule.

Re,

un bloc If est moins bien adapté, mais en voici la syntaxe :
Code:
If Range("X1").Value = 1 Then
  PDF_1
ElseIf Range("X1").Value = 2 Then
  PDF_2
ElseIf Range("X1").Value = 3 Then
  PDF_3
ElseIf Range("X1").Value = 4 Then
  PDF_4
End If
Caillou
 

macropadawan

XLDnaute Nouveau
Re : Lancer une macro en fonction de la valeur d'une cellule.

Le Select fonctionne parfaitement bien.

Je le trouve en effet plus adapté.

Merci encore.

C'est la finalité de 3 mois de travail, il n me reste plus qu'à envoyer le fichier par macro via lotus, d'après ce que j'ai lu sur les forums, un gros challenge pour moi.
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11