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 :

Trouver une valeur dans shape ppt depuis excel


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
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut Trouver une valeur dans shape ppt depuis excel
    Bonjour,

    Je cherche, depuis une macro excel, à aller voir si des valeurs présentes dans une colonne excel sont présentes dans des shapes ppt.
    L'idée étant que si une valeur est présente, un oui apparait dans la case en face de cette valeur dans excel, sinon un non.

    J'ai tenté une macro, qui semble planter avant même le début...
    Et par la suite, l'utilisation de la fonction 'find' me parait naïve, n'ayant pu la tester...

    Ci-dessous mon code, en espérant que ça pourra en inspirer certains pour me guider

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Sub vérifier_si_présent()
     
     
        ' Start PowerPoint.
        Dim ppApp As PowerPoint.Application
        Dim ppPres As PowerPoint.presentation
        Set ppApp = CreateObject("Powerpoint.Application")
        Set ppPres = ppApp.presentation.Open("C:\Users\NG2F637\Desktop\tools\détection shapes\test.pptx")  ' chemin vers fichier ppt
     
        ' Make it visible.
        ppApp.Visible = True
     
        Dim ppSlide As PowerPoint.slide
        Dim ppShape As PowerPoint.Shape
        Dim cherche, trouve As String
     
    Application.ScreenUpdating = False
     
    Sheets("ici").Select
     
     
        k = 3 ' Parcourir
     
        While Sheets("ici").Cells(k, 2) <> "" ' tant que la cellule n'est pas vide
     
        cherche = Sheets("ici").Cells(k, 2)  ' mettre la valeur à remplacer dans la variable
     
     
     
        For Each ppSlide In ppPres.Slides  ' parcourir les slides
     
            For Each ppShape In ppSlide.Shapes    ' parcourir les shapes
     
     
        On Error Resume Next
     
                Set oTxtRng = ppShape.TextFrame.TextRange()
                Set oTmpRng = oTxtRng.Search(cherche, cherche)
     
                Do While Not oTmpRng Is Nothing
     
     
                    Set oTxtRng = oTxtRng.Characters _
                    (oTmpRng.Start + oTmpRng.Length, oTxtRng.Length)
                    Set oTmpRng = oTxtRng.Search(cherche, cherche)
     
                Loop
            Next ppShape
        Next ppSlide
     
        If oTmpRng = True Then   'au bluffe...
        Sheets("ici").Cells(k, 8).Range = "OUI"
        Else: Sheets("ici").Cells(k, 8).Range = "NON"
        End If
     
        k = k + 1
        Wend
     
    ppApp.Quit
     
    Set ppApp = Nothing
    Application.ScreenUpdating = True
    End Sub
    Merci pour votre aide et bonne soirée !

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

    Citation Envoyé par tiber33 Voir le message
    J'ai tenté une macro, qui semble planter avant même le début...
    C'est à dire ? Message d'erreur ?

    Philippe

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut
    "Erreur de compilation - type défini par l'utilisateur non défini" pour la ligne 5

  4. #4
    Invité
    Invité(e)
    Par défaut
    RE

    Il faut que tu déclares la référence PowerPoint.

    Editeur VB Outils/Référence et tu coches PowerPoint.

    Philippe

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut
    En effet, je l'avais oublié celui là, pour d'autres macro de ppt qui appelle excel j'y avais pensé mais là non...

    Du coup ça la lance, mais là où je rame méchament, c'est pour le vocabulaire de vba concernant ppt (les presentation, shapes and co...)

    J'ai cherché mais n'ai rien trouvé de construit (à l'inverse de vba excel), si tu as une doc je suis preneur, ça m'éviterait de poser 36000 questions pour des broutilles...

    Là, nouvelle erreur, ligne 8:
    "erreur de compilation: Membre de méthode ou de données introuvable"
    en surlignant le '.presentation'

  6. #6
    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,

    Citation Envoyé par tiber33 Voir le message
    J'ai cherché mais n'ai rien trouvé de construit (à l'inverse de vba excel), si tu as une doc je suis preneur, ça m'éviterait de poser 36000 questions pour des broutilles...
    Tu peux utiliser l'aide de VBA pour PowerPoint à partir de l'aide de VBA pour Excel.

    1-Tu places le pointeur de souris sur ton mot-clef de VBA-Powerpoint
    2-Tu appuies plus ou moins fort (c'est à ton goût ) sur la touche F1.
    3-Tu choisis l'objet PowerPoint dans la boîte de dialogue

    P.S. Je pense que j'ai réglé ce problème-ci dans ma réponse dans ton autre fil.

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

Discussions similaires

  1. Comment trouver une valeur dans un tableau ?
    Par wizou44 dans le forum Excel
    Réponses: 20
    Dernier message: 29/08/2008, 10h57
  2. Recherche d'une valeur dans un txt depuis vba excel
    Par Ted37 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/08/2008, 08h28
  3. Trouver une valeur dans une liste
    Par Erwane dans le forum Scheme
    Réponses: 11
    Dernier message: 31/03/2008, 21h19
  4. trouver une valeur dans un intervalle
    Par gwenhael dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/09/2006, 11h21
  5. Réponses: 14
    Dernier message: 26/04/2006, 23h14

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