Macro liée à une liste déroulante

Bonjour à tous.

Depuis quelques jours, je rencontre un problème sur ma macro.

Sur ma feuille Excel, j'ai une liste déroulante (validation de données) et j'ai un bouton affecté à une macro. Lorsque je clique dessus, il me demande si je veux enregistrer tout ?

Si je réponds non, seule la sélection active est enregistrée.

Si je clique oui, je souhaite qu'il m'enregistre l'ensemble des personnes de ma liste déroulante.

La fonction "non" fonctionne très bien, mais la fonction "oui" ne marche pas du tout.

J'ai tenté diverses manipulations dans ces lignes de codes sans trouver la raison du problème.

Je vous joints le fichier et la macro.

Merci d'avance pour votre aide

Sub Rapport_BC()
    Dossier = "SERVEUR-ADMIN:017 REFERENT:07 Gestion d'utilisateurs:01 Rapport annuel:2016:BC:"
    Fichier = Range("D1") & ".pdf"
    chemin = Dossier & Fichier

     ActiveSheet.PageSetup.PrintArea = "$A$2:$O$65"
       choix = MsgBox("Enregistrer tout ?", vbQuestion + vbYesNoCancel + vbDefaultButton2, "Rapport_Individuel_BC")
    If choix = vbCancel Then Exit Sub
    If choix = vbNo Then
        ' enregistrer utilisateur
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin
       ActiveSheet.PageSetup.PrintArea = ""
    Else
        ' enregistrer tout
        Application.ScreenUpdating = False
        savSelection = [D1]
        For Each c In [DonnéesBC[Clé2]]
            [D1] = c.Value
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin
        Next c
        [D1] = savSelection
    End If
    ActiveSheet.PageSetup.PrintArea = ""
End Sub

Bonjour

Code à tester :

Sub Rapport_BC()
Dim dossier As String, fichier As String, chemin As String
Dim c As Range
dossier = "SERVEUR-ADMIN:017 REFERENT:07 Gestion d'utilisateurs:01 Rapport annuel:2016:BC:"

 ActiveSheet.PageSetup.PrintArea = "$A$2:$O$65"
   choix = MsgBox("Enregistrer tout ?", vbQuestion + vbYesNoCancel + vbDefaultButton2, "Rapport_Individuel_BC")
If choix = vbCancel Then Exit Sub
If choix = vbNo Then
    ' enregistrer utilisateur
    fichier = Range("D1")
    chemin = dossier & fichier
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin
   ActiveSheet.PageSetup.PrintArea = ""
Else
    ' enregistrer tout
    Application.ScreenUpdating = False
    For Each c In [DonnéesBC[Clé2]]
        fichier = c.Value
        Range("D1") = c.Value
        chemin = dossier & fichier
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin
    Next c
End If
ActiveSheet.PageSetup.PrintArea = ""
End Sub

Vous utilisez un MAC, donc attention à veiller à ne pas utiliser des accents dans les noms de plage ou feuilles qui sont utilisés dans le code. Le cas échéant des bugs seront constatés en cas d'utilisation du fichier sous PC windows.

Si ok, lors de votre réponse, merci de cloturer le fil en cliquant sur le V vert à coté du bouton Editer

Cordialement

Super. Merci beaucoup pour votre aide.

Je vois que vous avez rajouté des codes qui commencent par "Dim"

A quoi cela correspond-il ?

Pourriez-vous m'expliquer mon erreur ?

Grace à ce site et ce forum, je m'améliore chaque jour un peu plus avec les macros.

Paar contre, je cherche encore un endroit où sont répertoriés les codes de bases (Dim, If - then, etc...)

Mes salutations les meilleures.

re,

Je vois que vous avez rajouté des codes qui commencent par "Dim"

A quoi cela correspond-il ?

Vous n'avez pas fait d'erreur.

Les instruction DIM permettent de déclarer les variables. En gros, cela permet d'allouer un espace mémoire idéal à la variable définie et qu'excel va utiliser pour exécuter le(s) code(s).

Même si ici ce n'est pas très important pour ce petit code, c'est une bonne pratique de les déclarer

Des explications sur les variables sont disponibles dans la partie cours VBA de ce site --> https://www.excel-pratique.com/fr/vba/variables.php

petit truc : pur être sur que toutes les variables sont déclarées, il suffit de mettre en entete de module l'instruction "Option explicit"

Si besoin d'autres explications, n'hésitez pas

Cordialement

Rechercher des sujets similaires à "macro liee liste deroulante"