Macro impression powerpoint 2007

mimosa49 -  
 Solly -
Bonjour,
Je viens d'enregistrer une macro powerpoint qui a pour but d'imprimer la page en cours quand je suis en diaporama. malheureusement, elle m'imprime systématiquement la dernière page imprimée.
Je vous joins ci dessous la macro :

Private Sub CommandButton1_Click()
With ActivePresentation.PrintOptions
.RangeType = ppPrintCurrent
.NumberOfCopies = 1
.Collate = msoTrue
.OutputType = ppPrintOutputSlides
.PrintHiddenSlides = msoTrue
.PrintColorType = ppPrintColor
.FitToPage = msoFalse
.FrameSlides = msoFalse
.HandoutOrder = ppPrintHandoutHorizontalFirst
sCurPrinter = .ActivePrinter
End With
ActivePresentation.PrintOut

End Sub

Merci d'ance à tous

A voir également:

3 réponses

f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

Private Sub CommandButton1_Click()
With ActivePresentation.PrintOptions
.RangeType = ppPrintSlideRange
With .Ranges
.ClearAll
'mettre x=position du slide (1 a ... n)
.Add Start:=x, End:=x
End With
.NumberOfCopies = 1
.Collate = msoTrue
.OutputType = ppPrintOutputSlides
.PrintHiddenSlides = msoTrue
.PrintColorType = ppPrintColor
.FitToPage = msoFalse
.FrameSlides = msoFalse
.HandoutOrder = ppPrintHandoutHorizontalFirst
sCurPrinter = .ActivePrinter
End With
ActivePresentation.PrintOut
End Sub

Essayez si cela vous intéresse

Bonne continuation
0
mimosa49
 
Merci pour cette première réponse, mais je souhaitais mettre une macro dans le masque d'impression qui détecte automatiquement la page sur laquelle je suis.
avec cette macro je vais être obligé de mettre un bouton sur chaque diapo en indiquant le numéro de la page que je souhaite indiqué.

Y aurait il possibilité d'avoir une macro qui intègre automatiquement la page sur laquelle le diaporama est positionné et l'imprimer.

Merci d'avance pour vos prochaines réponses.
0
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 715
 
Bonjour,

Le code qui suis vous permet de récupérer le numéro du Slide à l'écran et d'imprimer ce Slide

Pour initialiser il faut un bouton ou un événement via les macros complémentaires. Voir ci-dessous

Comment lancer une macro à l'ouverture d'un diaporama ?
[haut]
auteur : Philippe JOCHMANS
Contrairement aux autres applications Office comme Word ou Excel, il n'est pas possible de lancer une macro à l'ouverture d'un fichier PowerPoint.
Pour cela vous devez utiliser une macro-complémentaire avec une routine qui se nomme : Auto_Open(). Cette routine se déclenchera à l'ouverture de PowerPoint (dans la mesure où le complément a bien été chargé).

Pour imprimer il faut un bouton ou un événement (a vous de voir).

'Bouton pour initialisation
'-------------------------------
Private Sub CommandButtonX_Click()
InitializeApp
End Sub

'Code a mettre dans un module
'---------------------------------------
Public Numero_Slide As Integer
Dim X As New EventClassModule

Sub InitializeApp()
Set X.App = Application
End Sub

'impression Slide a l'ecran
'--------------------------------
Sub Impression()
With ActivePresentation.PrintOptions
.RangeType = ppPrintSlideRange
With .Ranges
.ClearAll
.Add Start:= Numero_Slide , End:= Numero_Slide
End With
.NumberOfCopies = 1
.Collate = msoTrue
.OutputType = ppPrintOutputSlides
.PrintHiddenSlides = msoTrue
.PrintColorType = ppPrintColor
.FitToPage = msoFalse
.FrameSlides = msoFalse
.HandoutOrder = ppPrintHandoutHorizontalFirst
sCurPrinter = .ActivePrinter
End With
ActivePresentation.PrintOut
End Sub

Bonne continuation
0
Solly
 
Bonjour,

Je me permets de rebondir sur ce sujet car je cherche depuis plusieurs heures (promis, surtout en tant que débutante, j'ai fouiné partout avant d'écrire ici) à faire une macro pour créer un bouton impression sur un PPS (afin de le sécuriser).

J'ai donc créer un bouton avec AutoOpen pour que la macro se lance en visionneuse. Après de multiples essais, j'ai respecté la procédure indiquée juste au-dessus. Sauf que je rencontre un petit problème : je voudrais que l'impression se fasse sur la diapositive en cours et là, ça ne marche pas.

En modifiant l'étape
.Add Start:= Numero_Slide , End:= Numero_Slide
si je fais
.Add Start:= 2 , End:= 2, la diapositive 2 s'imprime.
Sauf que j'ai beaucoup de diapositives et je ne trouve pas la solution. Je ne sais même pas créer différentes macros (une macro sur chaque slide) et pour ça non plus je n'ai aps trouvé comment faire. J'ai lu les tuto et autres, je n'ai pas la réponse...

Je suis tombée sur une autre possibilité mais qui marche encore moins. Voici le code au cas où ça vous donne des idées :

Sub PrintCurrentSlide()
Dim lSldNum As Long
lSldNum = SlideShowWindows(1).View.Slide.SlideNumber
With ActivePresentation.PrintOptions
.RangeType = ppPrintSlideRange
.Ranges.ClearAll
Ranges.Add lSldNum, lSldNum
End With

Là, même le PrintCurrentSlide n'est pas reconnu.

Je travaille sur une version 2007 amis que je dois enregistrer en mode de compatibilité 2003 (j'ai le double affichage : 2003 et 2007 en ce qui concerne les menus).

Si vous pouviez m'aider, ce serait fabuleux parce que j'avoue que là, je ne sais plus trop où chercher...

Merci d'avance pour votre aide.

Solly06
0