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 :

Lancer un pps depuis une macro Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 62
    Points : 50
    Points
    50
    Par défaut Lancer un pps depuis une macro Excel
    Bonjour à tous.

    Voila mon souci. Je dois créer une présentation powerpoint depuis des données contenues dans un classeur Excel. J'arrive à créer un code qui génère un fichier .pps (j'ai utilisé l'aide qui propose le code de base pour créer ce type de fichier).

    Néanmoins, j'aimerai qu'à l'issue de la création de ce fichier et de sa sauvegarde), la présentation soit directement éxécutée sans passer par l'interface classique Powerpoint. (C'est d'ailleurs pour cela que j'ai enregistré en .pps).

    Le problème est qu'avec le code utilisé, la présentation ne se lance pas et je ne comprends pas pourquoi

    En bref, j'ai un ficher .pps que je cherche à lancer à l'aide d'une maccro Excel.
    J'ai tenté plusieurs choses mais ça ne veut pas.

    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 NouvellePresentation()
    Dim PptApp As PowerPoint.Application
    Dim PptDoc As PowerPoint.Presentation
    Dim Diapo As PowerPoint.Slide
    Dim Sh As PowerPoint.Shape
    Dim Cs1 As ColorScheme
    Dim NbShpe As Integer
     
    Set PptApp = CreateObject("Powerpoint.Application")
    Set PptDoc = PptApp.Presentations.Add
     
    With PptDoc
     
        '--- Ajoute un Slide
        .Slides.Add Index:=1, Layout:=ppLayoutBlank
        'Crée une zone de texte (AddLabel)
        Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
            Left:=100, Top:=100, Width:=150, Height:=60)
        'insère la valeur de la Cellule A1 dans une zone de texte
        Sh.TextFrame.TextRange.Text = Range("A1")
        'Modifie la couleur du texte
        Sh.TextFrame.TextRange.Font.Color = RGB(255, 100, 255)
     
     
        '--- Ajoute un nouveau slide et le positionner en 2eme position
        Set Diapo = .Slides.Add(Index:=2, Layout:=ppLayoutBlank)
     
        'copie le 1er graphique contenu dans la feuille Excel active
        ActiveSheet.ChartObjects(1).Copy
        'collage dans la 2eme diapositive
        Diapo.Shapes.Paste
     
        'Compte le nombre de shapes dans la diapositive:
        'le dernier objet inséré correspond à l'index le plus élevé
        NbShpe = Diapo.Shapes.Count
     
        'Renomme et met en forme l'objet collé
        With Diapo.Shapes(NbShpe)
            .Name = "monGraph" 'personnalise le nom
            .Left = 150 'définit la position horizontale dans le slide
            .Top = 100 'définit la position verticale dans le slide
            .Height = 300 'hauteur
            .Width = 400 'largeur
        End With
     
     
        '--- Modifie la couleur de fond dans les différents Slides
        Set Cs1 = .ColorSchemes(3)
        Cs1.Colors(ppBackground).RGB = RGB(225, 233, 200)
        .SlideMaster.ColorScheme = Cs1
    End With
     
     
    'Sauvegarde la présentation
    'dans le meme répertoire que le classeur excel contenant la macro.
    PptDoc.SaveAs Filename:=ThisWorkbook.Path & "\" & "NouvellePresentation.ppt"
    'ferme la presentation
    PptDoc.Close
    'ferme powerpoint
    PptApp.Quit
     
    MsgBox "Opération terminée."
    End Sub
    Code utilisé en base:


    Merci d'avance pour votre aide

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut


    je pense qui'il te manque juste quelquechose du genre :

    a mettre après le saveas à mon avis.

    car quand je vais dans powerpoint et que je lance l'enregistreur de macro avant de lancer le show, voici ce qu'il m'enregistre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Macro1()
    '
        With ActivePresentation.SlideShowSettings
            .ShowType = ppShowTypeSpeaker
            .LoopUntilStopped = msoFalse
            .ShowWithNarration = msoTrue
            .ShowWithAnimation = msoTrue
            .RangeType = ppShowAll
            .AdvanceMode = ppSlideShowUseSlideTimings
            .PointerColor.RGB = RGB(Red:=255, Green:=0, Blue:=0)
            .Run
        End With
    End Sub
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 62
    Points : 50
    Points
    50
    Par défaut
    Pfiou quelle rapidité, tu as bien choisi ton avatar

    Bon plus sérieusement, merci pour ta réponse

    J'avais tenté de regarder le code que génère powerpoint quand on mime le lancement d'un ppt.

    J'ai testé ta solution en la positionnant juste après le SaveAs mais cela ne fonctionne pas. Il me met un message d'érreur "method or data member not found".

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    je dois tester, car je ne connais rien à Powerpoint.

    J'essaie.

    Je reviens dès que .....
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Sinon, pour lancer ton pps après l'avoir enregistré, tu peux faire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal bla As Long, _
        ByVal ble As String, ByVal bli As String, ByVal lpParameters As String, _
        ByVal blo As String, ByVal blu As Long) As Long
     
    Sub ExecuterPPS()
    Dim Chemin As String, NomFich As String
    NomFich = "TonFichier.pps"
    Chemin = "D:\Rep\"
        ShellExecute 0, "open", Chemin & NomFich, "", "", 3
    End Sub

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Ton fichier n'est pas un PPS mais un ppt donc le show ne se lancera pas.

    par contre si tu le sauve en pps et puis que tu l'ouvres à nouveau le show se lance.

    Je l'ai testé par une macro depuis powerpoint qui ouvre un ppt.

    mais je ne trouve pas commen t ouvrir depuis excel.

    mais je suiis ceratin que tu vas trouver.

    A+
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  7. #7
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut Ouskelnor,

    ta réponse complète la mienne.

    merci.

    Et bonne journée.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 62
    Points : 50
    Points
    50
    Par défaut
    Ouaaa

    Franchement bravo à vous deux pour votre efficacité, ça fait pas mal de temps que je me creuse la tête pour résoudre ce problème et vous en quelques temps ho, le tour est joué !
    Comme quoi il vaut mieux 1 qui sait que 10 qui cherchent MDR

    Merci encore, je pense que je vais intégrer le bout de code donné à un joli petit bouton dans la feuille Excel

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

Discussions similaires

  1. Lancer une commande windows depuis une macro Excel
    Par User dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/06/2015, 22h11
  2. [XL-2007] Lancer une requete ACCESS depuis une macro Excel
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2012, 19h29
  3. lancer un .exe depuis une macro
    Par 20100. dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2008, 10h42
  4. [VBA-E] Execution d'un programme Perl depuis une macro Excel
    Par DaBeam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/09/2007, 15h21
  5. comment lancer du code depuis une macro ?
    Par faiglon dans le forum Access
    Réponses: 15
    Dernier message: 13/07/2006, 11h03

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