Copier des plages de données Excel vers des sildes PPT
Bonjour à Tous,
Je vous remercie pour ce forum super actif, en tant que débutante cette plateforme m'a beaucoup aidé pour contruire mon premier code VBA.
Dans le cadre de mon projet, je dois générer des slides automatiquement, à partir d'un tableau Excel de 500 lignes.
Je dois tout d'abord récupérer l’adresse des plages tableaux que je dois copier dans les slide, puis exporter chacune de ces plages vers un slide de mon support ppt.
Exemple : Je dois copier la plage des données (A1:H18) dans slide 1, puis (A18, H23) dans slide 2.. et puisque mon taleau excel n'est pas statique, les zones que je dois récuprérer change régulièrement, (voir fichier en PJ) et puisque sur la colonnes A je stocke les titres de mes slides PPT, donc je fais une boucle sur la colonne A sui me renvoie le numéro de la cellule non vide pour limiter les slides PPt.
je sui bloquée plutôt dans la partie copie/collé de excel vers PPT, je n'arrive pas à insérer une boucle pour ce traitement, j'aimerais que mon outil copie des données excel en boucle dans plusieurs slides.
je vous mets ci dessous le code que j'ai réussit à écrire et qui ne marche mlheureusement pas.
Pourriez vous SVP m'aider à déboguer ce code. je vous remercie beaucoup par avance.
Pourriez-vous svp m'aider !!
Je vous remercie pour votre aide par avance
ci dessous vous trouerez le code mis à jour aujourd'hui.
====> résultat il copie des lignes pas les bonnes sur ln ppt avec 63 slide
'Récupérer l’adresse des plages tableaux à rajouter dans les slides
Sub ChercherLignes()
Dim lastrow, numligne, lignevide As Integer
Dim PptApp As PowerPoint.Application
Set PptApp = CreateObject("Powerpoint.Application")
Dim slideNum As String
slideNum = 0
For numligne = 1 To 10
While StrComp(Sheets("CDP").Range("A" & nyumligne + 1).Value, "")
lignevide = numligne + 1
copyversppt CStr(numligne), CStr(lignevide), slideNum, PptApp
numligne = numligne + 1
Wend
slideNum = slideNum + 1
Next numligne
End Sub
'Partie 2 : Exporter chacune de ces plages vers un slide du support comop
Sub copyversppt(i As String, j As String, slideNum As String, PptApp As PowerPoint.Application)
'Dim PptApp As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Dim CDP As Worksheet
Dim Sh As PowerPoint.Shape
Dim PPTSlide As PowerPoint.Slide
If PptApp.Presentations.Count = 0 Then
Set PptDoc = PptApp.Presentations.Add
End If
PptApp.Visible = True
PptApp.ActivePresentation.Slides.Add PptApp.ActivePresentation.Slides.Count + 1, ppLayoutText
PptApp.ActiveWindow.View.GotoSlide PptApp.ActivePresentation.Slides.Count
Set PPTSlide = PptApp.ActivePresentation.Slides(PptApp.ActivePresentation.Slides.Count)
'Set the title of the slide the same as the title of the chart
PPTSlide.Shapes(1).TextFrame.TextRange.Text = "test title" & i
Sheets("CDP").Range("A" & i & ":H" & j).Copy
PPTSlide.Shapes.Paste
PPTSlide.Shapes.PasteSpecial
End Sub