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 :

Excel xlsm vers Powerpoint pptm [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut Excel xlsm vers Powerpoint pptm
    Bonjour,

    Une fois par mois je dois copier des indicateurs et tableaux de bord d'une base de données Excel vers un Powerpoint (3 diapos)
    Ces copier/coller comportent 1 graphique nommé "Graphique8" dans Excel puis des tableaux situés dans des zones de cellules mais toujours sur la meme feuille.

    J'ai trouvé une macro bien sympa mais qui bloque à la ligne 14
    et si je passe les lignes 13 à 16 en commentaires afin de sauter ces lignes, ensuite ça bug a la ligne 20

    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
    Sub RMD_M43()
       ' On déclare une variable de type Application PowerPoint
       Dim ppt As PowerPoint.Application
       Set ppt = CreateObject("PowerPoint.Application")
       ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
       ' On crée maintenant un objet Presentation
       Dim Pres As PowerPoint.Presentation
       ' Et on lui dit de quelle présentation il s'agit :
       Set Pres = ppt.Presentations.Open(Filename:="U:\Groupes fonctionnels\RMD M43.pptm")
       ' On active, sélectionne et copie le Graphique de Excel :
       Sheets("Accueil").Select
       ActiveSheet.Unprotect
        ActiveSheet.ChartObjects("Graphique 8").Activate
        ActiveChart.ChartArea.Copy
       'Et on le colle dans la première diapositive de la présentation :
       Pres.Slides(1).Shapes.Paste
     
     
       ' Zone de la feuille Excel "data" à copier
    Sheets("Accueil").Range("A7:O39").Copy
    ' Coller les cellules Excel dans Powerpoint
    PptDoc.Slides(2).Shapes.PasteSpecial ppPasteOLEObject
    ' !!! A rajouter à la suite du précédent code VBA !!!
    PptDoc.Slides(2).Shapes(1).LockAspectRatio = msoFalse
    PptDoc.Slides(2).Shapes(1).Left = 10
    PptDoc.Slides(2).Shapes(1).Top = 10
    PptDoc.Slides(2).Shapes(1).Height = 340
    PptDoc.Slides(2).Shapes(1).Width = 700
     
     
       ' On enregistre la présentation PowerPoint :
       Pres.Save
       ' Et on quitte PowerPoint proprement :
       ppt.Quit
       Set ppt = Nothing
    End Sub
    Quelqu'un a-t-il une idée du pourquoi ça bug au "COPIER"
    Nota : j'ai bien activé Microsoft Powerpoint dans la librairie.

    Cordialement

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Evite les Select/Selection ou Activate/Active autant que faire se peut.

    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 RMD_M43()
       Dim ppt As PowerPoint.Application      ' Application PowerPoint
       Dim Pres As PowerPoint.Presentation    ' Presentation
     
       Set ppt = CreateObject("PowerPoint.Application")
       ppt.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
       ' On lui dit de quelle présentation il s'agit :
       Set Pres = ppt.Presentations.Open(Filename:="U:\Groupes fonctionnels\RMD M43.pptm")
     
       Sheets("Accueil").Unprotect
     
       ' Copie du graphique
       Sheets("Accueil").ChartObjects("Graphique 8").ChartArea.Copy
       Pres.Slides(1).Shapes.Paste

  3. #3
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bonsoir et merci Menhir,

    Le code n'est pas de moi, c'est du plagia.
    Sinon j'essaye demain au boulot et te tiens au courant.
    Qu'en est il pour le reste du code qui bug aussi à la ligne 20 ?

    Cordialement

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par graphikris Voir le message
    Qu'en est il pour le reste du code qui bug aussi à la ligne 20 ?
    Quel message d'erreur ?

  5. #5
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bonjour,
    je viens de tester le code, ça bloque à la ligne 13 : ça copie et ça ne colle pas.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Qu'est-ce que ça veut dire "ça bloque" ? Le programme s'arrête ? Sur quelle ligne s'arrête-t-il ? Quel est le message d'erreur ?

    J'ai une question dont la réponse semble évidente mais dans le doute je vais la poser quand même : tu as quand même rajouté la fin de ton code à la partie que je t'ai donnée ?

  7. #7
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bonjour,

    Réponse : ca bloque=> signifie que la macro s'arrete, que le graphique est en attente de "Copie" Ligne 13 (Erreur d'execution 438 - Propriété ou méthode non géré par cet objet)
    Reste du code mis => bien sûr.

    Cordialement

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    C'est quelle ligne 13 ?

    La tienne à l'origine, ou celle de Menhir ?

    P.S. Tiré de l'aide de VBA PowerPoint 2010. On ne peut pas coller n'importe quoi, n'importe comment dans une présentation PPT. Il faut tenir compte du mode d'affichage en cours dans PPT.

    Référence du développeur PowerPoint
    Shapes.Paste, méthode
    Cette méthode colle les formes, les diapositives ou le texte contenus dans le Presse-papiers dans la collection Shapes spécifiée, au début de l’ordre de plan. Chaque objet collé s’ajoute à la collection Shapes spécifiée. Si le Presse-papiers contient des diapositives entières, celles-ci viendront se coller comme des formes contenant les images des diapositives. Si le Presse-papiers contient du texte, celui-ci sera collé dans une nouvelle forme TextFrame. Elle renvoie un objet ShapeRange qui représente les objets collés.
    Syntaxe

    expression.Paste

    expression Variable qui représente un objet Shapes.

    Valeur renvoyée
    ShapeRange

    Remarques


    Utilisez la propriété ViewType pour définir la vue d’une fenêtre avant d’y coller le contenu du Presse-papiers. Le tableau ci-après illustre ce que vous pouvez coller dans chaque vue.

    Dans la vue... Vous pouvez coller, à partir du Presse-papiers...
    Mode Diapositive ou Page de commentaires Formes, texte ou diapositives complètes. Si vous collez une diapositive à partir du Presse-papiers, une image de cette diapositive sera insérée dans la diapositive, le masque ou la page de commentaires en tant qu’objet incorporé. Si la sélection porte sur une forme, le texte collé sera annexé au texte de la forme ; si la sélection porte sur du texte, le texte collé viendra remplacer la sélection ; si la sélection porte sur autre chose, le texte collé sera placé dans son propre cadre. Les formes collées seront ajoutées en haut de l’ordre de plan sans remplacer les formes sélectionnées.
    Mode Plan Texte ou diapositives complètes. Vous ne pouvez pas coller de formes dans le mode Plan. Une diapositive collée sera insérée avant la diapositive contenant le curseur.
    Mode Trieuse de diapositives Diapositives complètes. Vous ne pouvez pas coller de formes ni de texte dans le mode Trieuse de diapositives. Une diapositive collée sera insérée au niveau du curseur ou après la dernière diapositive sélectionnée dans la présentation.


    Exemple


    Cet exemple montre comment copier dans le Presse-papiers la forme 1 de la diapositive 1 de la présentation active, puis la copier dans la diapositive 2.

    Visual Basic pour Applications
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActivePresentation
        .Slides(1).Shapes(1).Copy
        .Slides(2).Shapes.Paste
    End With
    Cet exemple montre comment couper le texte de la forme 1 de la diapositive 1 de la présentation active, le placer dans le Presse-papiers, puis le coller après le premier mot de la forme 2 de la même diapositive.

    Visual Basic pour Applications
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActivePresentation.Slides(1)
        .Shapes(1).TextFrame.TextRange.Cut
        .Shapes(2).TextFrame.TextRange.Words(1).InsertAfter.Paste
    End With
    © 2010 Microsoft Corporation. Tous droits réservés.

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

Discussions similaires

  1. [XL-97] Copier coller d'un fichier Excel '.xlsm' vers un fichier .csv
    Par TraderAS dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/03/2013, 12h18
  2. Copiez coller d'Excel vers Powerpoint au milieu d'une zone de texte
    Par tenaka69 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/08/2007, 19h03
  3. Exportation de donnees d'Excel vers Powerpoint
    Par uptou dans le forum Excel
    Réponses: 3
    Dernier message: 06/08/2007, 14h20
  4. Erreur lors de transfert excel vers Powerpoint
    Par hallucine dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/09/2006, 14h27
  5. [VBA-E]Excel vers powerpoint : copier/coller spécial
    Par illight dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/09/2006, 12h41

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