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 :

Macro de copier/coller XL PPT


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
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Par défaut
    Bonjour à tous,

    J'imerai créer une macro depuis mon pPt qui permettrait de mettre à jour mon ppt via mon classeur XL.
    J'ai un cinquantaine de slides à mettre à jour.
    J'aimerai que la mise en forme et la taille reste la meme que celles du fichier xl.
    Parmis les slides à metteà jour il ya des graphiques.

    J'ai trouvé ce code mais je n'arrive pas à le comprendre.
    Merci de vosréponses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
     
     Set PPApp = GetObject(Class:="Powerpoint.Application")
        PPApp.ActiveWindow.ViewType = ppViewSlide
        PPApp.ActivePresentation.Slides(1).Select
            'EXCEL CODE
            Sheets("test").Select
            Range("A20:F31").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Copy
        'POWERPOINT CODE
        PPApp.ActiveWindow.View.PasteSpecial
     
    End Sub
    Bonjour,

    Un détail, j'aimerai lancer la macro de mise à jour par rapport à mon fichier XL depuis mon PPT.
    J'ai testé le code écrit ci-dessous mais cela ne fonctionne pas.

    Merci pour vos réponses

    En cherchant bien dans le forum, j'ai trouvé le code ci-dessous.
    Dois je le coller dans un module de mon classeur vba xl ou powerpoint?




    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    sub maj()
     
    Dim pwrPoint As PowerPoint.Application
    Dim Prez As PowerPoint.Presentation
    Dim targetMaj As String
    Dim Forme As PowerPoint.Shape
    Dim Diapo As PowerPoint.Slide
     
    Presentation = ThisWorkbook.Path & "\maPresentation.ppt"
    'Le nouveau classeur lié
    targetMaj = ThisWorkbook.Path & "\monClasseurMisAJour.xls"
     
    Set pwrPoint = CreateObject("PowerPoint.Application")
    pwrPoint.Visible = msoTrue
    Set Prez = pwrPoint.Presentations.Open(Presentation)
     
    'Boucle sur les Slide de la présentation
    For Each Diapo In Prez.Slides
        'Boucle sur les formes
        For Each Forme In Diapo.Shapes
            'Vérifie s'il s'agit d'un objet lié
            If Forme.Type = msoLinkedOLEObject Then
                'Vérifie si l'objet lié est un objet Excel
                If Forme.OLEFormat.progID = "Excel.Sheet.8" Then
                    'Modifie la source
                    Forme.LinkFormat.SourceFullName = targetMaj
                    'Mise à jour
                    Forme.LinkFormat.Update
            End If
        End If
        Next
    Next
     
    Prez.Save
    'ferme la présentation
    Prez.Close
    'ferme powerpoint
    pwrPoint.Quit
     
    end sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Ton dernier code est a placer dans Excel.

    Philippe

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Par défaut
    Bonjour,

    Merci pour ta réponse Phillipe.
    J'ai trouvé un autre code mais je n'arrive pas à effectuer le collage dans ma slide de destination de PPT (ligne 14 du code).
    J'ai une erreur d'execution 438 qui apparait "propriété ou méthode non généré par cet objet".

    Merci d'avance pour vos solutions.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ModifierPresentationExistante()
    Dim PptApp As PowerPoint.Application
    Dim PptDoc As PowerPoint.Presentation
     
    Set PptApp = CreateObject("Powerpoint.Application")
    PptApp.Visible = True
    Set PptDoc = PptApp.Presentations.Open("M:\01_2012\11_Octobre\test\Présentation1.pptx")
     
    With PptDoc
        'copie la plage de cellules dans la feuille Excel active
        Sheets("Paramètres").Range("B1:H5").Copy
        'Effectue un collage dans la 2eme diapositive
        .Slides(1).Shapes(2).Select
        Selection.Paste

Discussions similaires

  1. [XL-2003] Macro recherche+copier coller
    Par nico77ssx dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/11/2011, 21h57
  2. Pb de macro pour copier coller 100 fichier
    Par petit-ours dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/08/2011, 15h31
  3. [XL-2000] Macro pour copier-coller valeur avec un while
    Par golghot dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/06/2010, 16h52
  4. [XL-2007] macro pour copier coller des selections multiples
    Par bedoch dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/06/2009, 12h31
  5. Macro Excel : copier-coller-concaténer
    Par neo2k2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2007, 10h39

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