[VBA] - Exporter des données d'Excel vers un PowerPoint

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
F
Floo73
Membre habitué
Membre habitué
Messages : 67
Inscrit le : 15 novembre 2013
Version d'Excel : 2010

Message par Floo73 » 21 août 2014, 16:10

Bonjour à tous,

Je vous sollicite car j'aimerais automatiser une tâche réccurente avec une macro.
Toutes les semaines, j'aimerais mettre en forme sous forme de matrice 3x3, les composants sensibles de ma société.

Pour ce faire, j'ai d'abord un tableau Excel dans lequel j'ai tous mes composants et en face desquels j'attribue une note au regard de 2 critères : le Rex FNC et le Rex SAV.
Pour le moment je gère ce tableau manuellement et j'espère bien l'automatiser à l'avenir.

Mon souci : Pour présenter ce classement, j'ai pour habitude de classer les composants sous forme matricielle 3x3.
Ainsi, j'ai en abcisse mon Rex SAV avec des notes allant de 1 à 3 et en ordonnée mon Rex FNC allant de 1 à 3 également.

En fonction des notes attribuées sous mon tableur Excel, j'aimerais que les composants viennent automatiquement s'incrémenter dans mon support PowerPoint.
Donc en fonction de leurs notes, les composants doivent aller s'enregistrer dans des cases de ma matrice PowerPoint.

Est-ce possible ?

Voici le début de code que j'ai commencé à rédiger sans succès :
Sub Test()

    'nécessite d'activer la référence Microsoft Powerpoint Object Library
     Dim PPT As PowerPoint.Application
     Dim PptDoc As PowerPoint.Presentation
     'Dim NbShpe As Byte
     
     Dim i As Integer
  
     Set PPT = CreateObject("Powerpoint.Application")
     PPT.Visible = True 'l'application sera visible
     Set PptDoc = PPT.Presentations.Open("V:\VERSION_TEST_Matrice_composants_critiques_2014.pptx")
     Set Wbs = Workbooks("VERSION_TEST_Liste_des_composants_critiques_v2.xlsm").Worksheets("COMPO CRITIQ")
  
  With Wbs
  
        For i = 4 To 58
        
            'Si la note FNC est égale à 1 (colonne K) et que la note Rex SAV égale à 3
            If .Range("J" & i).Value = 1 And .Range("K" & i).Value = 3 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
            
'K = 3  & J = 2
            ElseIf .Range("J" & i).Value = 2 And .Range("K" & i).Value = 3 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
  
'K = 3  & J = 3
            ElseIf .Range("J" & i).Value = 3 And .Range("K" & i).Value = 3 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
 
'K = 2  & J = 1
            ElseIf .Range("J" & i).Value = 1 And .Range("K" & i).Value = 2 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
            
'K = 2  & J = 2
            ElseIf .Range("J" & i).Value = 2 And .Range("K" & i).Value = 2 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
  
'K = 2  & J = 3
            ElseIf .Range("J" & i).Value = 2 And .Range("K" & i).Value = 3 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
            
'K = 1  & J = 1
            ElseIf .Range("J" & i).Value = 1 And .Range("K" & i).Value = 1 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
  
'K = 1  & J = 2
            ElseIf .Range("J" & i).Value = 1 And .Range("K" & i).Value = 2 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
            
'K = 1  & J = 3
            ElseIf .Range("J" & i).Value = 1 And .Range("K" & i).Value = 3 Then
            Range("B" & i).Copy
            PptDoc.Slides(3).Shapes.PasteSpecial
            
            End If

        Next i
  
            PptDoc.Save 'sauvegarder les modifications
            PptDoc.Close 'fermer le document ppt
            PPT.Quit 'fermer l'application powerPoint
  
End Sub

En PJ, vous trouverez le tableur Excel où j'ai placé ma macro et le support PowerPoint que je souhaite alimenter ...

Cerise sur le gâteau, j'aimerais avant de fermer le PowerPoint, l'enregistrer avec dans le nom la date du jour/mois/année où j'ai réalisé ma macro.
Encore plus fort, est-ce qu'on peut faire un enregistrement automatique semaine par semaine, genre tous les lundis ?
Est ce possible ? "Facile" me diront les experts !

Merci de votre aide !
Je suis également preneur de tous liens renvoyant vers un support de formation aux basiques de PowerPoint en VBA !

Bon aprèm,

Floo73
VERSION_TEST_Liste_des_composants_critiques_v2.xlsm
(25.68 Kio) Téléchargé 83 fois
VERSION_TEST_Matrice_composants_critiques_1_2014.pptx
(44.76 Kio) Téléchargé 70 fois
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 3 septembre 2014, 17:37

Bonjour,

Ce que tu demandes est possible ...

Cependant tu devrais te faciliter la vie en préparant dans Excel le format complet de ta slide Powerpoint ...

Pour ce que concerne la sauvegarde dans Powerpoint, les instructions VBA sont les mêmes que pour Excel ...

Bon Courage

:)
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message