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 :

Sauvegarde d'un pptx ouvert à partir d'un objet attaché au xlsx


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité - Bénévole
    Inscrit en
    Octobre 2018
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Retraité - Bénévole
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 81
    Par défaut Sauvegarde d'un pptx ouvert à partir d'un objet attaché au xlsx
    Bonjour à l'aimable communauté
    En espérant que ce message vous trouvera en bonne ainsi que vos proches dans le contexte si particulier que nous traversons

    Ma problèmatique est la suivante:
    • Mon fichier xlsx comporte plusieurs onglets dont un (nommé "Gestion du rapport"), avec un jeu de boutons de macros (pas encore créées) et un autre (nommé "Format") dans lequel un template de pptx est inséré comme objet
    • L'onglet "Gestion du rapport" contient un bouton "Présentation" qui, lorsqu'il est activé, ouvre le template de présentation
    • Je souha

    iterais que la macro, après ouverture du pptx, le nomme en lui donnant le nom du fichier xlsx et le sauvegarde dans le même répertoire que le xlsx

    Là où je bute, c'est que, une fois le ppt ouvert, je ne parviens pas à le sélectionner pour lui donner ensuite le même chemin d'accès et nom que le xlsx.
    Tous mes remerciements à ceux qui auront pris le temps de lire ce message et plus encore à ceux qui pourront me prêter leur concours dans la résolution de ce problème !
    Merci à toutes et à tous

    Ozabois


    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Explicit
    Sub CreerPresentation()
     
    Dim pptApp As PowerPoint.Application
    Dim PptPres As PowerPoint.Presentation
     
    Dim NomFichierXExt As String      ' Nom fichier xls avec chemin acces et extension
    Dim NomFichierX As String         ' Nom fichier xls avec chemin acces sans extension
     
     
        NomFichierXExt = ActiveWorkbook.FullName                        ' Recupere le nom du fichier xls avec l'extension
        NomFichierX = Left(NomFichierXExt, Len(NomFichierXExt) - 5)     ' Nom du fichier xls sans l'extension
     
        ' Ouverture du ppt "Ca fonctionne"
            Sheets("Format").Activate
            ActiveSheet.Shapes.Range(Array("PPTplate")).Select
            Selection.Verb Verb:=3
     
        ' 3 tentatives infructueuses pour renseigner le "Set PptPres"
    '    Set PptPres = ActiveWindow.Selection
    '    Set PptPres = pptApp.Presentations.Application
        PptPres.SaveAs Filename:=NomFichierX & ".pptx"
     
        ActiveWindow.Selection.SaveAs Filename:=NomFichierX & ".pptx"
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Ozabois Voir le message
    Bonjour,

    Essayez de récupérer l'instance PowerPoint avec GetObject. Nb : Je n'ai pas vu la valeur 3 pour le paramètre de Verb dans la documentation Microsoft, l'essai réalisé était avec un .potx.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Sub CreerPresentation()
     
    Dim pptApp As PowerPoint.Application
    Dim PptPres As PowerPoint.Presentation
     
    Dim NomFichierXExt As String      ' Nom fichier xls avec chemin acces et extension
    Dim NomFichierX As String         ' Nom fichier xls avec chemin acces sans extension
     
    Dim NbPresentations As Integer
     
     
        NomFichierXExt = ActiveWorkbook.FullName                        ' Recupere le nom du fichier xls avec l'extension
        NomFichierX = Left(NomFichierXExt, Len(NomFichierXExt) - 5)     ' Nom du fichier xls sans l'extension
     
        ' Ouverture du ppt "Ca fonctionne"
        With Sheets("Format")
             .Activate
             .Shapes.Range(Array("PPTplate")).Select
             Selection.Verb Verb:=1
        End With
     
        Set pptApp = GetObject(Class:="PowerPoint.Application")
        With pptApp
             NbPresentations = .Presentations.Count
             Set PptPres = .Presentations(NbPresentations)
             PptPres.SaveAs Filename:=NomFichierX & ".pptx"
             Set PptPres = Nothing
        End With
        Set pptApp = Nothing
     
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité - Bénévole
    Inscrit en
    Octobre 2018
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Retraité - Bénévole
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 81
    Par défaut
    Bonjour Eric
    Merci beaucoup. Ça fonctionne !
    Il faudra à l'évidence que je travaille mon GetObject.
    Quant au n° de Verb c'est bien le 3 (le verb 1 ou le fichier en mode diaporama).
    Encore merci

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 11/12/2007, 17h34
  2. faire une sauvegarde de la base ouverte
    Par idiot dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/12/2007, 22h15
  3. Réponses: 8
    Dernier message: 09/10/2007, 06h48
  4. Sauvegarde dans une table a partir d'une zone de texte
    Par sambzh24 dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/06/2007, 07h23
  5. filtrer dynamiquement un frm ouvert à partir d'un autre frm
    Par stéphane_ais2 dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 14h08

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