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 :

Utilisation de la fonction intersection merge dans une macro Powerpoint


Sujet :

VBA PowerPoint

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1
    Par défaut Utilisation de la fonction intersection merge dans une macro Powerpoint
    Bonjour, j'ai essayé de faire une macro qui ferait la chose suivante :

    -> sélection dans la diapo active de la forme la plus en arrière plan
    -> Sélection dans cette même diapositive de la forme au premier plan
    --> NB : sur ma diapo active, il n'y a que deux formes qui se superposent en partie.
    -> faire une fusions de type "intersect merge"

    L'objectif est de créer une macro qui sélectionnerait le deux formes et qui les fusionneraient.

    -> mon code ne fonctionne pas, et je 'n arrive pas a trouver la cause.

    "Erreur de compilation /membre de méthode ou de compilation introuvable"


    Pouvez-vous svp m'aider à corriger le code
    ou me proposer une solution pour que je puisse fusionner deux forme à partir des deux formes sélectionnées
    (comme si je cliquait sur le bouton déjà présent d le ruban, de pouvoir le mettre dans mon userbox) ?

    Cordialement

    Fabien

    -------

    Sub SelectPhotoCadreDiapoActive()
    Dim shape As shape
    Dim MinZorder As Integer
    Dim MaxZorder As Integer
    Dim BackShape As shape
    Dim FrontShape As shape




    MinZorder = ActiveWindow.View.Slide.Shapes.Count
    MaxZorder = 0

    ' Boucle à travers chaque forme de la diapositive active
    For Each shape In ActiveWindow.View.Slide.Shapes
    ' Trouve la forme avec la position ZOrder la plus basse (arrière-plan)
    If shape.ZOrderPosition < MinZorder Then
    MinZorder = shape.ZOrderPosition
    Set BackShape = shape
    End If
    ' Trouve la forme avec la position ZOrder la plus élevée (premier plan)
    If shape.ZOrderPosition > MaxZorder Then
    MaxZorder = shape.ZOrderPosition
    Set FrontShape = shape
    End If
    Next shape

    ' Sélectionne la forme en arrière-plan
    If Not BackShape Is Nothing Then
    BackShape.Select
    End If

    ' Ajoute la forme au premier plan à la sélection
    If Not FrontShape Is Nothing Then
    FrontShape.Select (msoFalse)

    Call FindIntersect

    End Sub


    et la fonction Intersect :

    Function FindIntersect(Range1, Range2)
    FindIntersect = Application.Intersect(Range1, Range2)
    End Function
    End If

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 107
    Par défaut
    Hello,

    je ne suis pas un féru du VBA de PPT, mais j'ai trouvé ça
    https://stackoverflow.com/questions/...-in-powerpoint

    Par contre ne me demandez pas comment l'adapter à votre code si ce net qu'il faut utiliser msoMergeIntersect au lieu de msoMergeCombine

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 289
    Par défaut macro vba
    Sub IntersectMergeShapes()
    Dim shp1 As Shape
    Dim shp2 As Shape
    Dim slide As slide
    Dim intersectedShape As ShapeRange

    ' Définir la diapositive active
    Set slide = ActiveWindow.View.slide

    ' Sélectionner la forme la plus en arrière plan
    Set shp1 = slide.Shapes(slide.Shapes.Count)

    ' Sélectionner la forme au premier plan
    Set shp2 = slide.Shapes(1)

    ' Faire l'intersection des deux formes
    Set intersectedShape = slide.Shapes.Range(Array(shp1.Name, shp2.Name)).GroupItems.Intersect

    ' Fusionner les formes par intersection
    intersectedShape.Group

    End Sub

Discussions similaires

  1. Utiliser la 2e boite mail Outlook dans une macro
    Par matinda dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/09/2021, 09h27
  2. [XL-2016] Utilisation de la Fonction sous-total dans une macro
    Par manoon03 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/08/2018, 10h42
  3. Merge dans une macro
    Par thibaut3111 dans le forum Macro
    Réponses: 7
    Dernier message: 29/09/2016, 17h34
  4. Fonction RechercheV (Vlookup) dans une macro
    Par weeguum dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 24/07/2015, 13h58
  5. [XL-2010] Utilisation des "Styles de Cellules" intégrés dans une macro
    Par Pico----- dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2014, 15h41

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