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

Contribuez Discussion :

Fonction comme ThisPresentation


Sujet :

Contribuez

  1. #1
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut Fonction comme ThisPresentation
    Bonjour.

    J'ai chercher sur le web, mais sans succès, comment réaliser ThisPresentation, équivalent de ThisWorkBook pour Excel, c'est-à-dire une instance de la présentation du contenant le code du projet VBA en cours d'exécution.

    Je propose une solution avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function fThisPresentation() As PowerPoint.Presentation
    Dim s As String
     
    s = Application.VBE.ActiveVBProject.FileName
     
    For Each fThisPresentation In Application.Presentations
        If fThisPresentation.FullName = s Then Exit For
    Next fThisPresentation
     
    End Function
    Ce code fonctionne même si plusieurs présentations sont ouvertes sous le même nom, ce qui est étonnant, mais possible.
    Ouvrir plusieurs présentations et tester simplement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    Debug.Print fThisPresentation.FullName
    End Sub
    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  2. #2
    Inactif  

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

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

    Informations forums :
    Inscription : janvier 2012
    Messages : 4 905
    Points : 10 173
    Points
    10 173
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    PowerPoint ne supporte ThisPresentation, par contre, il supporte ActivePresentation, sur un mode similaire à ActiveWorkBook (Excel) ou ActiveDocument (Word). Mais, une macro PowerPoint dans la présentation A ne peut pas agir sur la présentation B comme pour Excel. Dans PowerPoint, la seule solution pour ce genre d'actions est la macro-complémentaire.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. [C#] Fonction comme MessageBox mais qui renvoie un string
    Par kinou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/05/2006, 11h40
  2. Fonction Comme dans requete paramétrée
    Par spearboy dans le forum Access
    Réponses: 7
    Dernier message: 14/04/2006, 08h57
  3. [VB6]Une fonction comme Trim(), mais pour les "-"
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/04/2006, 19h43
  4. fonction comme attribut
    Par TERRIBLE dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/01/2006, 00h13
  5. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41

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