Copie d’une plage de feuilles de calcul dans une diapositive PowerPoint, VBA

Maintenant que vous venez de créer un fichier de présentation PowerPoint, alors qu’il est toujours ouvert, supposons que vous souhaitiez copier une plage de feuilles de calcul dans la première diapositive de cette présentation. La macro suivante utilise une InputBox pour que l’utilisateur sélectionne une plage à copier.

Sub CopierPlage()

' Déclarez une variable de type Range.

Dim maPlage As Range

' Utilisez une Application InputBox pour que l'utilisateur

' sélectionne la plage souhaitée.

'Quittez la macro si l'utilisateur annule.

On Error Resume Next

Set maPlage = Application.InputBox("Sélectionnez une plage à copier:", Type:=8)

If Err.Number <> 0 Then

Err.Clear

MsgBox " Vous n'avez pas entré de plage.", vbInformation, " Annulé "

Exit Sub

End If

' Vérifier la taille de la plage afin d’éviter une plage très large.

If maPlage.Columns.Count > 6 Or maPlage.Rows.Count > 20 Then

MsgBox " Vous avez sélectionné une plage trop grande." & vbCrLf & _

" Veuillez sélectionner une plage qui ne contient pas plus de " & vbCrLf & _

"6 colonnes et / ou 20 lignes.", vbCritical, "Plage trop grande!"

Exit Sub

End If

' Déclarez les variables d'objet.

Dim powerpApp As Object, powerpPres As Object, powerpSlide As Object

'Attribuez l'application PowerPoint dans laquelle vous travaillez

'à la variable powerpApp.

Set powerpApp = GetObject(, "Powerpoint.Application")

' Attribuez le fichier de présentation dans lequel vous travaillez.

Set powerpPres = powerpApp.ActivePresentation

Set powerpSlide =

powerpPres.Slides(powerpApp.ActiveWindow.Selection.SlideRange.SlideIndex)

' Copiez la plage sous forme d'image.

maPlage.CopyPicture Appearance:=xlScreen, Format:=xlPicture

' Collez l'image de la plage sur la diapositive.

powerpSlide.Shapes.Paste.Select

' Alignez l'image de plage pour qu'elle soit centrée dans la diapositive.

With powerpApp.ActiveWindow.Selection.ShapeRange

.Align msoAlignCenters, msoTrue

.Align msoAlignMiddles, msoTrue

End With

' Libérez la mémoire système réservée aux variables Object.

Set maPlage = Nothing

Set powerpApp = Nothing

Set powerpPres = Nothing

Set powerpSlide = Nothing

End Sub

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x