VBA : Un classeur Excel dans une présentation powerpoint

  • Initiateur de la discussion Initiateur de la discussion jinchen
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jinchen

Guest
Bonjour,

Après des heures de lecture sur votre forum, j'ai trouvé quelques réponse, mais il reste une question : "comment ouvrir en VBA un classeur Excel inséré sous forme d'objet dans une présentation Powerpoint à partir du code VBA de cette même présentation ?"

Merci !
 
Re : VBA : Un classeur Excel dans une présentation powerpoint

Par un beau dimanche après-midi, une solution a été trouvée :

Code:
Sub new_xlwb()
'
' Création d'un classeur Excel dans la présentation avec une propriété .Name
'

    ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=120, Top:=110, Width:=480, Height:=320, ClassName:="Excel.Sheet.8", Link:=msoFalse).Select
    ActiveWindow.Selection.ShapeRange.OLEFormat.Activate
    With ActiveWindow.Selection.ShapeRange
        .Name = "[COLOR="Red"]Toto[/COLOR]"
        .Left = 120.25
        .Top = 135
        .Width = 480
        .Height = 319
    End With
End Sub

Static Sub Seek(Vin, Vout As String)

    'Déclaration des variables
    Dim xlApp As Variant 'Application Excel
    Dim xlWbd As Variant 'Classeur Excel
    Dim xlWsh As Variant 'Feuille Excel
    Dim xlRan As Variant 'Range Excel

'    'Ouverture de l'application
    Set xlApp = CreateObject("Excel.Application")
'    'Ouverture d'un fichier Excel
    Set xlWbd = ActivePresentation.Slides(44).Shapes("[COLOR="Red"]Toto[/COLOR]").OLEFormat
    ' Main mise sur la feuille 1
    Set xlWsh = xlWbd.Object.Worksheets(1)
    ' Main mise sur l'adressage de la feuille
    Set xlRan = xlWsh.Range("Table")

    Excel.Application.Quit

End Sub

Maintenant, il me reste les questions suivantes :
- Est-il possible de nommer les slides (en évitant ainsi de l'appeler par son numéro -ici slides(44)-)
- Comment testé si l'application Excel est ouverte ?
- Comment ouvrir Excel en début de présentation si il est fermée ?
- Comment fermer Excel en fin de présentation s'il était fermé ?

D'avance merci
 
Re : VBA : Un classeur Excel dans une présentation powerpoint

Réponse à la première question (nommer une diapo) dans le code ci-dessous ...

Il me reste les questions suivantes : Dès l'ouverture de la présentation ppt, comment, en VBA, faire pour :
- tester si l'application Excel est ouverte ?
- ouvrir Excel en début de présentation si il est fermée ?
- fermer Excel en fin de présentation s'il était fermé ?

Code:
Sub NameSlide()

      ' Declare les variables.
      Dim SlideCount, CurrentView As Long
      Dim Changed As Boolean
      Dim Answer As Integer

      ' Erreur de frappe.
      On Error Resume Next
      Err.Clear

      ' compte les diapos de la presentation.
      SlideCount = ActivePresentation.Slides.Count

      ' ajoute une nouvelle diapo à la fin de la presentation.
      With ActivePresentation.Slides
         .Add(SlideCount + 1, ppLayoutBlank).Name = "[COLOR="Red"]Toto[/COLOR]"

         ' Traitement du nom déjà existant.
         If Err.Number <> 0 Then
            SlideCount = ActivePresentation.Slides.Count
            ActivePresentation.Slides.Range(Array(SlideCount)).Select
            ActiveWindow.Selection.SlideRange.Delete
            MsgBox "Ce nom de diapo existe déjà."
            End
         End If
      End With

End Sub
 
Re : VBA : Un classeur Excel dans une présentation powerpoint

Au sujet de l'ouverture d'un classeur inclue dans une présentation powerpoint, j'obtiens le message d'erreur suivant dans les variables locales au niveau de la variable xlWbd : " : ActiveWindow : <Application.ActiveWindow : Invalid request. There is no currently active document window.> : DocumentWindow"

Du coup, j'ai des soucis pour travailler sur le classeur par la suite ... Quelqu'un à une idée de l'origine du problème ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
551
Réponses
4
Affichages
322
Réponses
5
Affichages
185
Réponses
2
Affichages
267
Retour