Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint

Réponse
 
Outils de la discussion
Vieux 12/11/2008, 14h28   #1 (permalink)
Membre du Club
 
Date d'inscription: juin 2006
Messages: 92
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,
bonilla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 12/11/2008, 15h09   #2 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 400
Envoyer un message via MSN à Philippe JOCHMANS
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
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 12/11/2008, 15h32   #3 (permalink)
Membre du Club
 
Date d'inscription: juin 2006
Messages: 92
Par défaut

Bonjour Philippe,

On est bien d'accord, c'est sur le contenu de la diapo
Citation:
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!
bonilla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 09h52   #4 (permalink)
Membre du Club
 
Date d'inscription: juin 2006
Messages: 92
Par défaut

Bonjour,

Par rapport à mes réponses en gras, pas de pistes pour m'aider un peu ?
bonilla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/11/2008, 21h57   #5 (permalink)
Membre Expert
 
Avatar de JackOuYA
 
Date d'inscription: juin 2008
Messages: 1 038
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 :
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
 
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/11/2008, 16h09   #6 (permalink)
Membre du Club
 
Date d'inscription: juin 2006
Messages: 92
Par défaut

Bonjour JackOuYA,


Merci pour ta réponse !

Si j'ai bien compris ,la ligne
Code :
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 :
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,
bonilla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/11/2008, 18h51   #7 (permalink)
Membre Expert
 
Avatar de JackOuYA
 
Date d'inscription: juin 2008
Messages: 1 038
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 :
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
 
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message

Dernière modification par JackOuYA ; 14/11/2008 à 19h18
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/11/2008, 15h06   #8 (permalink)
Membre du Club
 
Date d'inscription: juin 2006
Messages: 92
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 :
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 :
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!!
bonilla est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/11/2008, 20h30   #9 (permalink)
Membre Expert
 
Avatar de JackOuYA
 
Date d'inscription: juin 2008
Messages: 1 038
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 ?
__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBA

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide