Conflit workbook et macro

Résolu
Bonjour,

Je rencontre un problème avec une macro.

Je m'explique :
J'ai une macro qui me permet d'exporter mon fichier en pdf.
J'ai également un règle dans le workbook (before_save) pour empècher l'utilisateur d'enregistrer le fichier.

Le problème est que c'est deux macro rentre en conflit, et j'ai cherché à réglé le problème de différente solution, mais j'ai toujours un message d'erreur.

"Erreur d'éxécution '5':

Argument ou appel de procedure incorrect"

Et excel me dit que l'erreur vient de ce bout de code :

.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Si quelqu'un peut m'aider je lui serais très reconnaissant!

10 réponses

  1. .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    1. Modérateur
      Bonjour,

      1- déclarer une vraiable de type booléenne en public dans un module standard
      2- les codes :

      Dans le module ThisWorkbook :
      Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
      If Autorise_A_Sauver = True Then Exit Sub
      Cancel = True: MsgBox "sauvegarde impossible"
      End Sub


      Dans le module standard :
      Option Explicit
      
      Public Autorise_A_Sauver As Boolean
      
      Sub enregistre()
      Autorise_A_Sauver = True
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
              "blabla\Classeur1.pdf"
      Autorise_A_Sauver = False
      End Sub

      Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
      1. Bonjour Pijaku,

        Merci pour ces premiers éléments de réponse, mais j'ai toujours la même erreur.

        "Erreur d'éxécution '5':
        Argument ou appel de procedure incorrect"

        Module standard

        Option Explicit

        Public Autorise_A_Sauver As Boolean

        Sub Export_PDF()

        Autorise_A_Sauver = True

        Dim fichier As String
        Dim Adresse As String
        Dim Chemin As String

        With Worksheets("Format impression")
        fichier = "Bon de commande" & ".pdf"

        Chemin = ThisWorkbook.Path & "\" & fichier
        Adresse = Feuil2.Range("S5")

        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        End With

        MsgBox "Un Pdf a été généré pour votre commande, vous devez l'envoyer à l'adresse : " & Adresse

        Autorise_A_Sauver = False

        End Sub



        Workbook

        Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

        Dim sPass As String

        If Autorise_A_Sauver = True Then

        Exit Sub

        Else

        sPass = InputBox("Veuillez saisir le mot de passe")

        If sPass = "mdp" Then

        Cancel = False

        Else

        MsgBox "Vous ne pouvez enregistrer le fichier, utilisez le bouton de validation du bon de commande": Cancel = True

        End If

        End If

        End Sub
        1. Modérateur
          as tu modifié le code du BeforeSave?
        2. Oui je te l'envoi.
      2. Oui je te l'ai mis plus haut.

        workbook

        Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

        Dim sPass As String

        If Autorise_A_Sauver = True Then

        Exit Sub

        Else

        sPass = InputBox("Veuillez saisir le mot de passe")

        If sPass = "mdp" Then

        Cancel = False

        Else

        MsgBox "Vous ne pouvez enregistrer le fichier, utilisez le bouton de validation du bon de commande": Cancel = True

        End If

        End If

        End Sub
        1. Modérateur
          Le souci ne vient pas de BeforeSave.
          Qu'elle version d'Excel?
          Si 2007, voir ceci : http://www.microsoft.com/fr-fr/download/details.aspx?id=7

          1. Je suis sous la version Excel 2010 .
            1. Modérateur
              Pour continuer, il faudrait voir le fichier incriminé.
              Au besoin supprime les données confidentielles.
              Pour nous le faire passer ici, il faut le charger sur cjoint.com et revenir ici nous donner le lien ainsi créé
            2. Je vous envoie ça.
          2. Bonjour,

            Veuillez trouver ci-dessous le lien du fichier.

            http://www.cjoint.com/c/FBzkLBaEfpT
            1. Modérateur
              Bonjour,
              Je regarde ça
          3. Modérateur
            Bon.
            La macro fonctionne très bien chez moi.

            J'en reviens donc à mon message 7 à savoir une erreur, un manque dans l'installation d'excel (cf ICI).

            Bon, il existe, heureusement, d'autres manières d'enregistrer en pdf une feuille excel. Tu pourras en trouver pas mal, ici sur ce site ou sur Internet en général.
            Comme cela dépends de ton logiciel de pdf, je te laisse le soin de chercher.
            1. Merci pour cette réponse.

              Cependant j'ai créé ce fichier pour qu'il soit utilisé par différents utilisateurs sur des ordinateurs également différents.

              Si l'utilisation de cette macro demande des conditions spécifiques d'utilisation,
              cela peut engendrer des problèmes.
              1. J'ai finalement trouvé le problem!!!!

                La macro ne fonctionnait pas, parce que la feuille que je souhaitais imprimer était masquée.

                Merci!