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 :

Afficher une diapo avec son NOM depuis excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Afficher une diapo avec son NOM depuis excel
    Bonjour,

    Débutant en VBA, je désire à partir d'une cellule excel ouvrir une diapo précise...
    c'est à dire ouvrir le slide dont le nom correspond à la valeur de la cellule
    (ou dont un shape contient la valeur de la cellule)

    Exemple

    Fichier excel
    BLEU
    BLANC
    ROUGE
    VERT
    JAUNE
    ....

    Fichier PPT
    slide 1 BLANC
    slide 2 JAUNE
    slide 3 VERT
    slide 4 ROUGE
    slide 5 BLEU
    ...

    from excel cellule JAUNE affichage slide 2
    from excel cellule BLEU affichage slide 5

    je change le PPT
    slide 1 BLEU
    slide 2 ROUGE
    slide 3 VERT
    slide 4 JAUNE
    slide 5 BLANC

    from excel cellule JAUNE affichage slide 4
    from excel cellule BLEU affichage slide 1

    J'ai fait beaucoup de macros (issues d'exemple), mais toujours des problèmes (ActiveX, pas le droit de... impossible d'ouvrir...etc)
    j'ai essayé d'appeler une macro depuis une macro (Pb ActiveX ou autres)

    Pour info, je dirige une association de voyages
    je gère les adhérents sur un fichier excel (nom, matricule, adresse, etc....)
    j'ai leurs photos sur un PPT (avec d'autres données)
    en "cliquant" sur un matricule depuis excel) je voudrai faire apparaitre le slide correspondant

    Ces fichiers sont vivants (les n°s de slide varient)

    La macro dans PPT pour retrouver un slide fonctionne MAIS exécutée depuis PPT
    Je voudrais l'exécuter depuis excel

    Merci de m'aider

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Avec les noms des slides en colonne A et les slides en colonne B. La présentation doit être ouverte, mais ça peut se modifier. Si ça te convient, il restera à ajuster la taille des slides à celle des cellules :

    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
    Sub PPT2()
    Dim ObjPwpt As Object, ObjPres As Object
    Dim C As Range, Plage As Range, I As Integer
    Set ObjPwpt = GetObject(, "Powerpoint.Application")
    Set ObjPres = ObjPwpt.ActivePresentation
    With Sheets(1)
        Set Plage = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
    End With
    With ObjPres
        For Each C In Plage
            For I = 1 To ObjPres.slides.Count
                If C.Value = .slides(I).Name Then
                    .slides(I).Copy
                    C.Offset(, 1).Select
                    Sheets(1).Paste
                End If
     
            Next I
        Next C
    End With
    End Sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Excel vers PPT
    Merci Daniel.C

    Je ne sais pas trop comment fonctionne ce forum, mais je pense que tu me retrouveras

    La solution tableau (merci encore pour l'exemple) ne m'inspire pas trop. Il faut tenir à jour le tableau
    J'ai réussi (à quelques détails près) d'afficher depuis excel une diapo AVEC son NOM.
    Ceci me permet de "brasser" mon fichier PPT. Je n'ai pas besoin de connaitre son N° pour l'afficher (simplement le nom du slide)
    Il me reste un problème de passage de variables de la macro excel à la macro de PPT (pour mon cas le nom du slide)
    J'ai des problème de syntaxe(je pense)
    Je vais préparer un autre envoi avec mes exemples VBA
    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Excel vers PPT
    C'est encore moi

    Voici mes 2 macros

    MACRO dans PowerPoint

    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
    Sub Macro007()
    Dim objSld As Slide
    Dim objShp As Shape
    Dim strNom As String
     
    Dim valcel As String
    valcel = "JAUNE"
     Dim appPowerPoint As PowerPoint.Application
     Dim MaPresentation As PowerPoint.Presentation
        Set appPowerPoint = CreateObject("PowerPoint.Application")
        appPowerPoint.Visible = True
     
        Set MaPresentation = appPowerPoint.Presentations.Open(FileName:="C:\Users\SERGE\Desktop\VBA\PwpVBA.pptm")
        'Sélectionne la diapo paramètrée
     
        MaPresentation.Slides(valcel).Select
       End Sub
    MACRO dans Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Automate3()
    Dim PPTApp As Object
    Dim oPPTApp As PowerPoint.Application
     
    Set oPPTApp = New PowerPoint.Application
     
    With oPPTApp
     .Visible = True
     .Presentations.Open ("c:\Users\SERGE\Desktop\VBA\PwpVBA.pptm")
     .Run ("PwpVBA.pptm!Module4.Macro007")
    End With
     
    End Sub
    Quelle est la syntaxe pour que automat (macro excel) passe la variable valcel à Macro07 (macro PPt)
    .Run ("PwpVBA.pptm!Module4.Macro007 (????)")

    Et à la réception
    Sub Maco07(????)

    i.e valcel = "JAUNE" de Macro07 disparait et aura la valeur donnée par excel


    Merci

  5. #5
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Pour mes tests, le nom de ma slide est Slide3.

    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
    'MACRO dans Excel
     
    Sub Automate3()
    Dim PPTApp As Object
    Dim oPPTApp As PowerPoint.Application
     
    Set oPPTApp = New PowerPoint.Application
     
    With oPPTApp
    .Visible = True
    valcel = "Slide3" 'c'est le nom de ma slide
    .Presentations.Open ("c:\Users\SERGE\Desktop\VBA\PwpVBA.pptm")
    Set PwpVBA = .Presentations.Open("D:\Users\Daniel\Documents\Donnees\Daniel\Photos\Diaporamas\Agon - Coutainville.pptm")
    oPPTApp.Run "'" & PwpVBA.Name & "'!Macro007", valcel
    End With
     
    End Sub
    Dans PowerPoint :

    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
    Sub Macro007(valcel)
    Dim objSld As Slide
    Dim objShp As Shape
    Dim strNom As String
     
    Dim appPowerPoint As PowerPoint.Application
    Dim MaPresentation As PowerPoint.Presentation
    Set appPowerPoint = CreateObject("PowerPoint.Application")
    appPowerPoint.Visible = True
     
    Set MaPresentation = appPowerPoint.Presentations.Open(FileName:="C:\Users\SERGE\Desktop\VBA\PwpVBA.pptm")
    'Sélectionne la diapo paramètrée
     
    MaPresentation.Slides(valcel).Select
    End Sub
    Passe de bonnes fêtes.

    Daniel

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

Discussions similaires

  1. [VBA] [5.1.8] Créer une requête BO (via Macro depuis Excel)
    Par Bretonnie dans le forum SDK
    Réponses: 6
    Dernier message: 08/04/2015, 18h20
  2. [Toutes versions] Sélectionner une variable avec son nom dans un string
    Par tmlpqsdpmdlc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/03/2015, 16h09
  3. Instancier une classe avec son nom
    Par Arrakis dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2009, 17h57
  4. [PHP 5.0] instancier une classe avec son nom dans une variable
    Par Nnay_ dans le forum Langage
    Réponses: 1
    Dernier message: 12/02/2009, 12h49
  5. Afficher une image avec un dégradé depuis un point
    Par abir2007gallas dans le forum Images
    Réponses: 2
    Dernier message: 23/04/2008, 12h18

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