Problème finalisation macro VBA

Bonjour,

Je viens de créer la macro ci-dessous mais j'ai une erreur de compilation Bloc If/End if.

Impossible de comprendre d'où vient le problème. Je suis sûr que c'est un petit hic mais impossible de l'identifier. Pouvez-vous m'aider ?

Bonjour,

Tu as utilisé : IF et ElseIF il te faut donc 2 end IF à la fin.

Bonjour,
Avc le fichier !...
Cdlt.

Un grand merci Jean-Eric.

Ca fonctionne.

J'ai deux petits points en suspens.

1. J'aimerais que la macro propose 3 autres menus dans la cellule E7 si le nombre de convives est inférieurs à 25. J'ai bien écris le code avec les Else If mais elle ne le prend pas en compte. Auriez-vous une idée de la raison ?

2. J'ai voulu modifié les cellules dans lesquelles le choix des plats apparaissaient. Au lieu des F15:H15, j'ai tout passé à B15:D15 mais depuis... plus rien ne s'affiche :-(

Je vous joins le fichier.

Un grand merci encore pour votre aide.

Bonjour,

Votre macro fonctionne correctement. Le problème est que vous ne mettez pas à jour la liste des repas en fonction du nombre de convives. Pour remédier à cela je vous propose le code ci-après :

Je vous ai aussi un peu simplifié la partie de l’intersection, ca permet d’eviter d’avoir trop de conditions encastrées les unes dans les autres.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim nbConvives As Long
  Dim menuChoisi As String

  If Intersect(Target, Range("D7:E7")) Is Nothing Then Exit Sub
  ' evite de relancer la macro lors du clearcontents
  Application.EnableEvents = False

  nbConvives = Range("D7").Value
  menuChoisi = Range("E7").Value

  Range("B15:D15").ClearContents
  Range("B15:D15").Validation.Delete

  If Target.Address(False, False) = "D7" Then
    ' modification de la liste des menus possibles
    Range("E7").Validation.Delete
    Select Case nbConvives
    Case Is > 25
    CreateValidationList Range("E7"), "Menu Marie-Antoinette,Menu Louis XIV,Menu des Rois", "Menu"
    Case Else
    CreateValidationList Range("E7"), "Menu � 29�,Menu � 49�,Menu � 75�", "Menu"
    End Select
  End If

  If nbConvives > 25 Then
    Select Case menuChoisi
    Case "Menu Marie-Antoinette"
      CreateValidationList Range("B15"), "Authentique Terrine de Campagne,Poireau Vinaigrette traditionnel,Velout� Potimarron", "Entr�e"
      CreateValidationList Range("C15"), "Boeuf Bourguignon fa�on Mamie Monique,Filet de Lieu Noir et L�gumes du march�,Linguine Tomate & Basilic", "Plat"
      CreateValidationList Range("D15"), "Mousse au Chocolat et fleur de sel,Panacotta aux agrumes,Crumble aux pommes et cr�me vanille", "Dessert"
    Case "Menu Louis XIV"
      CreateValidationList Range("B15"), "Saumon Gravelax et Cr�me Aneth,Flan au comt� 18 mois & Noix,Oeuf Poch� et cr�meux de Champignons", "Entr�e"
      CreateValidationList Range("C15"), "Supr�me de volaille et pur�e maison,Filet de Daurade et L�gumes du march�,Coquillette � la cr�me de truffe", "Plat"
      CreateValidationList Range("D15"), "Fondant au chocolat et cr�me anglaise,Tiramisu � la Cl�mentine,Ananas r�ti & Mousse de Fruits de la passion", "Dessert"
    Case "Menu des Rois"
      CreateValidationList Range("B15"), "C�vich� de Daurade et fruit de la passion,Op�ra de Foie Gras,P�el�e de gambas au lait de coco & curry", "Entr�e"
      CreateValidationList Range("C15"), "Confit de canard et gratin dauphinois,Filet de St Pierre et pur�e de C�leri,Risotto � la cr�me de truffe", "Plat"
      CreateValidationList Range("D15"), "Paris-Brest du Chapeau,Fondant � la Pistache,Poire poch�e au chocolat", "Dessert"
    End Select

  ElseIf nbConvives > 0 And nbConvives <= 25 Then
    Select Case menuChoisi
    Case "Menu � 29�"
      CreateValidationList Range("B15"), "Entr�e du jour & Plat du jour & 1/4 vins,Plat du jour & Dessert du jour & 1/4 vins,Entr�e du jour & Plat du jour & Dessert du jour", "Formule"
      Range("C15:D15").ClearContents             'Effacer les autres colonnes
    Case "Menu � 49�"
      CreateValidationList Range("B15"), "Oeuf Bio poch� et cr�meaux de foie Gras,Marbr� de saumon gravelax et sa chantilly de wasabi", "Entr�e (49�)"
      CreateValidationList Range("C15"), "Cordon bleu du Chapeau et pur�e Grand chef,P�che du jour et L�gumes du march�", "Plat (49�)"
      CreateValidationList Range("D15"), "Mousse au chocolat maison et noisettes torr�fi�es,Cr�me brul�e", "Dessert (49�)"
    Case "Menu � 75�"
      CreateValidationList Range("B15"), "Op�ra de foie gras,C�vich� de daurade aux fruits de la passion,Po�l�e de Gambas au lait de coco et curry", "Entr�e (75�)"
      CreateValidationList Range("C15"), "Confit de canard et gratin dauphinois,Filet de St Pierre et pur�e de c�leri,Risotto � la cr�me de truffe", "Plat (75�)"
      CreateValidationList Range("D15"), "Paris-Brest du Chapeau,Fondant pistache,Poire poch�e au chocolat", "Dessert (75�)"
    End Select
  End If

  Application.EnableEvents = True

End Sub

Private Sub CreateValidationList(rng As Range, listValues As String, inputTitle As String)
  With rng.Validation
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=listValues
    .IgnoreBlank = True
    .InCellDropdown = True
    .inputTitle = inputTitle
    .ErrorTitle = "Erreur"
    .ErrorMessage = "Veuillez choisir une option dans la liste."
    .ShowInput = True
    .ShowError = True
  End With
  rng.Value = "Choisir " & inputTitle
End Sub
Rechercher des sujets similaires à "probleme finalisation macro vba"