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 Evaluate VBA PPT [PPT-2003]


Sujet :

VBA PowerPoint

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Par défaut Utilisation Evaluate VBA PPT
    Bonjour,

    Quelqu'un sait comment utiliser la fonction Evaluate dans le VBA de PPT.

    Mon objectif est de lancer une fonction recomposer par concaténation :
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Evaluate("getForm" & Trim(lbNumFile) & Trim(lbQr) "(" & noNum & ")")

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

    Que veux-tu faire, car cette fonction n'a pas l'air d'exister.

    Philippe

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Par défaut
    J'ai un ensemble de fonctions dans un module du type getForm153qr1( NumSld as Integer ).
    Les valeurs 153 et qr1 sont variables ( cela peut être 123 et qr0 ce qui donne getForm123qr0( NumSld as Integer ) donc pour lancer ma fonction en fonction de la valeur des variables j'ai besoin de reconstituer le nom de la fonction . donc je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    lbNumFile = "153" 
    lbQr = "qr1"
    numSld = 10
    Evaluate("getForm" & Trim(lbNumFile) & Trim(lbQr) & "(" numSld ")")
    Pour info j'ai essayé cela sans succés faut il une librairie spécifique pour utiliser cette fonction ?

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

    je t'avoue que j'ai du mal à comprendre, car si j'ai bien compris tu as plusieurs fonctions qui ont des noms ressemblants à part tes variables.

    Pourquoi ne pas créer une fonction générique et passer ces variables en paramètres ?

    Personnellement, je ne vois pas ce que je peux faire pour toi.

    Philippe

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Par défaut Re Re
    Ces fonctions créent des shpapes différents ( tapéze ; rectangle , etc ) en fonction d'une image ( exp nom : 153.bmp ) .

    Voici par exemple une fonction
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    Procedure  de chargement de l'image ( 20 slides sur lequel on charge des images différentes )
     
    Public Sub getLoadImage(ByVal numImg As Integer, ByVal intImgClick As Integer, ByVal numSld As Integer)
     
        ' ===== déclaration des variables =====
        Dim objSld As Slide         ' va permettre de parcourir les diapositives du diaporama
        Dim objShp As Shape         ' va permettre de parcourir les éléments d'une diapositive
     
        Dim strPath As String
        Dim lbFichier As String
        Dim blRésult As Integer
     
        strPath = ActivePresentation.Path
     
        Set objSld = ActivePresentation.Slides(numSld)
        objSld.Select
     
     
        If Len(Trim(Str(numImg))) = 1 Then
            lbFichier = "0" & Trim(Str(numImg))
        Else
            lbFichier = Trim(Str(numImg))
        End If
        Set objShp = objSld.Shapes.AddPicture(FileName:=strPath & "\images\" & lbFichier & ".bmp", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=130, Top:=86, Width:=460, Height:=368)
        With objShp
            .Fill.Transparency = 0#
            .LockAspectRatio = msoFalse
            .Height = 319.38
            .Width = 431#
            .Left = 1.88
            .Top = 221#
            .IncrementTop -2#
        End With
     
        Set objSld = Nothing
        Set objShp = Nothing
     
        'Charge les formes sur l'image zonable s'il y en a
        If intImgClick = 1 Then
            'MsgBox "Debut - Img Cliquable"
            'Evaluate ("getForm" & Trim(lbFichier) & Trim(lbQr) & "(" & numSld & ")")
            'MsgBox "Fin - Img Cliquable"
        end if
     
    End sub
     
    Exemple fonction création shape
    Public Function getForm153qr1(idSld As Integer) As Integer
        ' ===== déclaration des variables =====
        Dim objSld As Slide         ' va permettre de parcourir les diapositives du diaporama
        Dim objShp As Shape         ' va permettre de parcourir les éléments d'une diapositive
     
        Set objSld = ActivePresentation.Slides(idSld)
        objSld.Select
     
         'MsgBox "getForm153qr1"
     
        Set objShp = objSld.Shapes.AddShape(msoShapeRectangle, 161.5, 270#, 113.5, 73.75)
        With objShp
            .Name = "zone1"
            .AutoShapeType = msoShapeRectangle
        End With
     
        Set objShp = Nothing
     
        Set objShp = objSld.Shapes.AddShape(msoShapeRectangle, 155.88, 394.75, 28.38, 39.62)
        With objShp
            .Name = "zone2"
            .AutoShapeType = msoShapeRectangle
            .IncrementRotation 7.22
        End With
        Set objShp = Nothing
     
        Set objShp = objSld.Shapes.AddShape(msoShapeRectangle, 189.88, 451.5, 90.75, 73.62)
        With objShp
              .Name = "zone3"
              .AutoShapeType = msoShapeRectangle
        End With
        Set objShp = Nothing
     
        Set objSld = Nothing
     
        getForm153qr1 = 1
     
     
    End Function

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Il semble que Eval (et non evaluate) n'existe pas sous PowerPoint.

    Comme tes fonctions sont déjà défini, personnellement pour les lancer je passerais par des Select ... Case.

    Philippe

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

Discussions similaires

  1. Comment utiliser en VBA le champ paramétré d'une requête ?
    Par fredpeca dans le forum Requêtes et SQL.
    Réponses: 26
    Dernier message: 23/01/2007, 15h40
  2. [VBA-ppt] Obtenir la version du document sous PowerPoint
    Par stupid dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 03/08/2006, 08h14
  3. Création DLL pour utilisation sur VBA
    Par Fbartolo dans le forum C++Builder
    Réponses: 1
    Dernier message: 21/11/2005, 20h44
  4. Réponses: 10
    Dernier message: 10/11/2005, 16h04
  5. Pb avec utilisation UPDATEsous VBA
    Par frevale dans le forum Access
    Réponses: 7
    Dernier message: 07/11/2005, 23h56

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