Conflit workbook et macro

Résolu
Fooney -  
 Fooney -
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. Fooney
     
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    0
  3. Fooney
     
    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
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      as tu modifié le code du BeforeSave?
      0
    2. Fooney
       
      Oui je te l'envoi.
      0
  4. Fooney
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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

    0
  7. Fooney
     
    Je suis sous la version Excel 2010 .
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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éé
      0
    2. Fooney
       
      Je vous envoie ça.
      0
  8. Fooney
     
    Bonjour,

    Veuillez trouver ci-dessous le lien du fichier.

    http://www.cjoint.com/c/FBzkLBaEfpT
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,
      Je regarde ça
      0
  9. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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.
    0
  10. Fooney
     
    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.
    0
  11. Fooney
     
    J'ai finalement trouvé le problem!!!!

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

    Merci!
    0