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

VBA PowerPoint Discussion :

Créer une shape et la sélectionner en mode présentation. [PPT-2010]


Sujet :

VBA PowerPoint

  1. #1
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Points : 155
    Points
    155
    Par défaut Créer une shape et la sélectionner en mode présentation.
    Bonjour le forum,

    Permettez-moi de solliciter votre aide pour résoudre le problème suivant.
    Dans une procédure, je créée une ellipse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Slide3.Shapes.AddShape(msoShapeOval, a, b, c, d).Select
    , avec a, b, c, d les paramètre calculés.
    Que je renomme ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.Selection.ShapeRange.Name = "sh_orbite"
    En mode développement (normal view), mon code fonctionne parfaitement.
    En mode présentation, par contre, une erreur est générée sur l’instruction de création
    “Shape (unknown member): Invalid request: to select a shape its view must be active”
    A la réflexion, l’erreur est logique: on ne peut pas sélectionner en mode présentation.
    Mais alors, comment faire pour créer un objet « shape » et le renommer en cours de présentation ?
    Un membre du forum peut-il m’aider ?

    D’avance merci pour vos réponses
    Bon weekend

    Harry

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

    Il ne faut pas procéder de la sorte mais passer par une variable objet.

    Voici un exemple dans ce code : http://powerpoint.developpez.com/faq...nommerControle

    Voici un autre exemple commenté en passant par des variables objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
        ' déclaration
        Dim objSld As Slide
        Dim objShp As Shape
     
        ' j'affecte à la variable objet objSld le premier slide
        Set objSld = ActivePresentation.Slides(1)
     
        ' j'affecte à la variable objet objShp la forme voulue
        Set objShp = objSld.Shapes.AddShape(msoShapeOval, 20, 20, 50, 60)
        ' je lui donne un nom
        objShp.Name = "toto"
    End Sub
    Dans ton cas, si tu crées tes formes en mode présentation, il faut utiliser ce genre de code et ne pas utiliser les sélections (qui sont souvent données par l'enregistreur de macros).

    Philippe

  3. #3
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Points : 155
    Points
    155
    Par défaut
    Bonjour Philippe,
    Merci pour la réponse.
    L'exemple commenté est très clair et m'a permis de corriger mon code.
    Après test, plus d'erreur.

    Excellent weekend

    Harry

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

Discussions similaires

  1. créer une shape bizzare
    Par mielle dans le forum OpenGL
    Réponses: 5
    Dernier message: 14/01/2013, 13h26
  2. evenement sur clic d'une shape en mode edition
    Par elbiloute dans le forum VBA PowerPoint
    Réponses: 19
    Dernier message: 17/07/2010, 08h52
  3. sortie du mode texte d'une shape
    Par potili2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/06/2008, 20h22
  4. Ouvrir la fenêtre "Créer une requête en mode Création"
    Par Tentative dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/09/2007, 15h44
  5. Réponses: 3
    Dernier message: 24/10/2006, 18h36

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