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 :

[PPT-VBA] Comment exporter un slide vers Excel


Sujet :

VBA PowerPoint

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut [PPT-VBA] Comment exporter un slide vers Excel
    Bonjour,

    Après avoir parcouru le forum ,je bloque sur une procédure qui me permettrait de copier un slide powerpoint et de le coller sur Excel.

    La dessus ,est-il possible de :

    sur un slide (avec du texte ,et sous forme de tableau de 4 colonnes),de copier que 3 colonnes sur Excel ?

    de faire une boucle en prenant uniquement les slides avec le titre :"Tableau de classe" ?


    Merci d'avance de votre aide,

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

    On est bien d'accord, c'est le contenu de ta diapositive et non celle-ci que tu veux transférer ?

    C'est tout à fait possible, mais il faut plus de détails :

    • Le titre est-il dans un zone réservée ou une simple zone de texte ?
    • Tes données sont dans un tableau ou réparties dans plusieurs zones de textes ?
    • Quelle est la version de PowerPoint ?
    • Veux-tu faire cela à partir de PowerPoint ou d'Excel ?



    Philippe

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut
    Bonjour Philippe,

    On est bien d'accord, c'est sur le contenu de la diapo
    C'est tout à fait possible, mais il faut plus de détails :

    Le titre est-il dans un zone réservée ou une simple zone de texte ?
    C'est une zone de texte
    Tes données sont dans un tableau ou réparties dans plusieurs zones de textes ?
    C'est un tableau ; A titre perso, cela est possible dans les deux cas (ou ca change la méthode?)Quelle est la version de PowerPoint ?
    2000 SP3
    Veux-tu faire cela à partir de PowerPoint ou d'Excel ?
    Idéalement Powerpoint ,mais pourquoi pas sur Excel (car je pense que ca sera plus simple sur excel!)
    Merci de ton aide en tout cas!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Par rapport à mes réponses en gras, pas de pistes pour m'aider un peu ?

  5. #5
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    voila ce que je comprends du texte en gras, j'ai fais cela dans VBA-PPT, coche la référence à Excel :


    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
    Sub ExtraitTexte()
     Dim yaExcel As New Excel.Application
     Dim yaWk As Excel.Workbook
     Dim s As Slide
     Dim yaSa As Shape
     Dim i As Integer
     '
     ' Création Classeur
     '
     Set yaWk = yaExcel.Workbooks.Add
     yaWk.Sheets(1).Cells(1, 1) = "Slide"
     yaWk.Sheets(1).Cells(1, 2) = "Texte"
     i = 1
     For Each s In ActivePresentation.Slides
        For Each yaSa In s.Shapes
            If yaSa.HasTextFrame Then
                i = i + 1
                yaWk.Sheets(1).Cells(i, 1) = s.Name
                yaWk.Sheets(1).Cells(i, 2) = yaSa.TextFrame.TextRange
            End If
        Next
     Next
     yaExcel.Visible = True
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut
    Bonjour JackOuYA,


    Merci pour ta réponse !

    Si j'ai bien compris ,la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yaWk.Sheets(1).Cells(i, 1) = s.Name
    le S.Name donne le nom du titre du slide ou le numéro du slide ?
    Dans ma demande ,je chercherais une boucle qui scannerait les slides et quand il trouverait le nom d'un titre de slide avec "Classe" ,il prendrait alors le textbox situé dans ce slide (ie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yaWk.Sheets(1).Cells(i, 2) = yaSa.TextFrame.TextRange
    ) avec yaSa.TextFrame.TextRange qui prend le textbox

    Autre question ,si dans la textrange du slide, il y a un tableau(4x4) :est-il possible de prendre les colonnes 1 et 2 uniquement ?


    Merci d'avance,

  7. #7
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    pour les deux premiéres question si tu as exécuté le code tu dois avoir la solution ?


    Ton tableau il est vraiment dans la Zone de texte ?

    si la réponse est non tiens le code précédent modifié pour traiter les tableaux :

    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
    Sub YaTableau()
     Dim yaExcel As New Excel.Application
     Dim yaWk As Excel.Workbook
     Dim s As Slide
     Dim yaSa As Shape
     Dim i As Integer
     '
     ' Création Classeur
     '
     Dim iR As Integer
     Dim iC As Integer
     Set yaWk = yaExcel.Workbooks.Add
     yaWk.Sheets(1).Cells(1, 1) = "Slide"
     i = 1
     For Each s In ActivePresentation.Slides
        For Each yaSa In s.Shapes
            If yaSa.HasTable Then
                i = i + 1
                yaWk.Sheets(1).Cells(i, 1) = s.Name
                For iR = 1 To yaSa.Table.Rows.Count  'boucle dans lignes
                  i = i + 1
                  For iC = 1 To yaSa.Table.Columns.Count 'boucle dans colonne
                    yaWk.Sheets(1).Cells(i, iC) = yaSa.Table.Cell(iR, iC).Shape.TextFrame.TextRange
                  Next
                Next
            End If
        Next
     Next
     yaExcel.Visible = True
    End Sub

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut
    Merci Jacques pour ta réponse.

    J'ai avancé dessus mais je bloque sur une étape.

    Dans la pratique ,je voudrais que la macro balaye tous les slides et scanne les titres des textbox.

    Je suis arrivé avec cette syntaxe à scanner les textbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If yaSa.HasTextFrame Then
     
    ActiveWindow.Selection.SlideRange.Shapes(i).Select
    ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select
     
        Dim aa As String
        aa = ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Text
        MsgBox aa
     Else
     
     End If
    et je l'ai mis dans le code que tu m'avais fournis.

    Simplement, arrivé a la fin du premier slide en scannant toutes les textbox, il ne passe pas à la deuxieme et me met un message d'erreur .

    Je copie colle tout mon code si ca peut aider :

    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
    Sub macro2()
    Dim s As Slide
     Dim yaSa As Shape
     Dim i As Integer
     
        For Each s In ActivePresentation.Slides
        i = 1
        For Each yaSa In s.Shapes
     
    If yaSa.HasTextFrame Then
     
    ActiveWindow.Selection.SlideRange.Shapes(i).Select
    ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select
     
        Dim aa As String
        aa = ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Text
        MsgBox aa
     Else
     
     End If
     
     
     
    i = i + 1
    debut = debut + 1
    Next
     
    Next
     
    End Sub

    Merci d'avance!!

  9. #9
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    bonsoir,

    bonilla, évite de rajouter des Select dans mes codes cela me donne des boutons

    le premier code que j'ai posté tout en haut parcours tous les boites textes de toutes tes diapositives , ce n'est pas cela que tu veux faire ?

Discussions similaires

  1. comment exporter une table vers un fichier excel
    Par 21247692 dans le forum Développement
    Réponses: 3
    Dernier message: 27/02/2009, 14h44
  2. VBA-Export toutes Tables vers Excel
    Par House MD dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/08/2008, 11h48
  3. Comment exporter un TStringGrid vers Excel par Linkin
    Par MelkInarian dans le forum Delphi
    Réponses: 2
    Dernier message: 09/02/2007, 09h37
  4. [VBA-E]Exporter des données d'Excel vers Access
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2006, 15h57
  5. [C#] Comment exporter un GridView vers Excel ?
    Par anto dans le forum ASP.NET
    Réponses: 4
    Dernier message: 26/05/2006, 16h24

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