IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

La méthode SaveAs de l'objet _Workbook a échoué


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut La méthode SaveAs de l'objet _Workbook a échoué
    Bonjour

    J'ai un classeur principal qui créé un nouveau classeur par une méthode worksheet("mafeuille").move

    Ce nouveau classeur/feuille est modifié (son nom est sauvé dans la variable 'mafacture') et génère un fichier PDF + une rédaction de mail (le .send reste manuel jusque là)

    Puis je cherche à sauvegarder ce classeur/feuille et récolte l'erreur en objet. Si manuellement je clique sur la feuille du classeur et continue ma macro, ça fonctionne (donc c'est pas une erreur d'emplacement de sauvegarde).

    J'ai essayé d'appliquer des activate sur le classeur, sur l'application et sur les 2 mais rien n'y fait.

    Quelqu'un a-t-il un idée??

    AppActivate mafacture
    Workbooks(mafacture).Activate
    Workbooks(mafacture).SaveAs Filename:=savelocation & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    Merci par avance pour vos aides précieuses.

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut Résolu
    Bon

    J'ai finalement placé ma commande SaveAs avant l'ouverture du pdf généré (ThisWorkbook.FollowHyperlink savelocation & ".pdf") et du coup ça fonctionne comme ça.

    Pas de vrai problème aussi donc, hormis de la cu5riosité intellectuelle : pourquoi ça ne marche pas après ce lien..?

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans visualiser l'entièreté du code que vous avez utilisé, il est difficile de se prononcer mais voici une procédure qui fonctionne parfaitement et qui fait exactement ce que vous avez décrit

    • Transfert de la feuille nommée "Ma facture", présente dans le classeur où se trouve le code VBA, vers un nouveau classeur
    • Conversion de la feuille nouvelle transférée en fichier pdf
    • Sauvetage du nouveau classeur avec pour nom "Ma facture" dans le même répertoire que le classeur source avec comme suffixe xlsx
    • Fermeture du nouveau classeur

    Code de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub MoveSheet()
      Const NewName As String = "Ma Facture"
      Dim wkb_New As Workbook
      Dim FullName As String
      Dim CurrentFolder As String
      CurrentFolder = ThisWorkbook.Path
      FullName = CurrentFolder & "\" & NewName
      ThisWorkbook.Worksheets(NewName).Move
      Set wkb_New = ActiveWorkbook
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FullName & ".pdf"
      With wkb_New
      .SaveAs Filename:=FullName & ".xlsx"
      .Close
      End With
      Set wkb_New = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/11/2020, 11h25
  2. Réponses: 4
    Dernier message: 10/12/2014, 11h22
  3. Réponses: 25
    Dernier message: 25/04/2008, 15h23
  4. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo