Macro s'execute en F8 parfaitement, mais pas en F5

municipum

XLDnaute Nouveau
Bonjour,
comme indiqué en objet. j'ai une macro pour importer des graphes depuis excel vers powerpoint en gardant la forme source.
quand j’exécute la macro en mode pas par pas F8, ca fonctionne impec. il suffit que je l’exécute en mode F5 qu'elle exécute une partie (aléatoirement) mais pas d'autre. et je ne reçois aucun message d'erreur.
ex: elle copie le 1er graphe dans le 5 slide mais pas le 2eme dans le 6eme slide et colle la moitié dans un autre slide ....
si je refais ca, il va coller autres graphes mais pas d'autres ...
enfin ce que je comprends, c'est que le code ne laisse pas le temps pour que chaque étape soit terminée pour lancer la prochaine.

j'ai essayé d'introduire la fonction DoEvents un peu partout dans le code, mais rien ne change. peut être que je l'utilise mal, je sais pas.

ci-dessous un fragment du code ( il est long vu le nombre de graphes et slide a faire copier/coller).
Et merci d'avance pour votre aide.
Code:
    Sub copierppt()
    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("D:\Users\Desktop\MATRIX.pptx")


        '5 ###################  slide 5 ####################
       PPT.ActiveWindow.View.GotoSlide Index:=5

        ThisWorkbook.Worksheets("names").ChartObjects("names graphe1").Copy

        PPT.ActiveWindow.Panes(1).Activate

        PPT.CommandBars.ExecuteMso ("PasteSourceFormatting")
        NbShpe = PptDoc.Slides(5).Shapes.Count

        With PptDoc.Slides(5).Shapes(NbShpe)
            .Name = "names graphe1"
            .Left = 50
            .Top = 230
            .Height = 270
            '.Width = 350
       End With
        DoEvents

        ' 6 ###################  slides 6 ####################

        PPT.ActiveWindow.View.GotoSlide Index:=6
        ThisWorkbook.Worksheets("surmane").ChartObjects("surname graphe1").Copy

        PPT.ActiveWindow.Panes(1).Activate

        PPT.CommandBars.ExecuteMso ("PasteSourceFormatting")

        NbShpe = PptDoc.Slides(6).Shapes.Count

        With PptDoc.Slides(6).Shapes(NbShpe)
            .Name = "Open surname graphe1"
            .Left = 50
            .Top = 230
            .Height = 270
            '.Width = 350
       End With

    ' 7 ################### slide 7 ####################
    PPT.ActiveWindow.View.GotoSlide Index:=7
    ThisWorkbook.Worksheets("adress").ChartObjects("adress graphe1").Copy
     PPT.ActiveWindow.Panes(1).Activate

        PPT.CommandBars.ExecuteMso ("PasteSourceFormatting")
        DoEvents
        NbShpe = PptDoc.Slides(7).Shapes.Count

        With PptDoc.Slides(7).Shapes(NbShpe)
            .Name = "adress graphe1"
            .Left = 50
            .Top = 230
            .Height = 270
            '.Width = 350
       End With
    ' 8 ################### slide 8 ####################
    PPT.ActiveWindow.View.GotoSlide Index:=8
    ThisWorkbook.Worksheets("statut").ChartObjects("statut graphe1").Copy
        PPT.ActiveWindow.Panes(1).Activate

        PPT.CommandBars.ExecuteMso ("PasteSourceFormatting")
        NbShpe = PptDoc.Slides(8).Shapes.Count

        With PptDoc.Slides(8).Shapes(NbShpe)
            .Name = "statut graphe1"
            .Left = 50
            .Top = 240
            .Height = 300
            '.Width = 350
       End With
        Sheets("statut").Activate
        Sheets("statut").Range("G21").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy

    PPT.ActiveWindow.Panes(1).Activate

        PPT.CommandBars.ExecuteMso ("PasteSourceFormatting")
        NbShpe = PptDoc.Slides(8).Shapes.Count

        With PptDoc.Slides(8).Shapes(NbShpe)
            .Name = "TCD1"
            .Left = 88
            .Top = 205
            '.Height = 520
           '.Width = 20
       End With
    '
    '
    ' ................ jusqu'a la fin du code qui contient plusieurs slides ...
 

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83