Formulaire

Retour vers PowerPoint

Formulaire

But : Créer un "Formulaire" sur une présentation et envoyer le résultat par courrier

Condition :

  1. Alléger le diaporama au maximum pour qu'il ne soit pas refusé par les serveurs de courrier
  2. Le logiciel de messagerie est Outlook pour bureau
  3. Personnaliser le code pour l'adresse du destinataire, le corps du message

Solution :
Faire le formulaire


Il faut un bouton de commande sur la dernière diapositive et des macros

Private Sub CommandButton1_Click()
    'Si l'on souhaite enlever une ou des diapositives dans la présentation
     'ActivePresentation.Slides(4).Delete
    'Mais il y aura encore des choses à faire dans cet exemple sur la dia précédente et suivante
    'pour en garder la cohérence,  prenons ici le parti d'expédier le fichier complet
    Call envoi 'envoi par courrier du fichier
    SlideShowWindows(1).View.GotoSlide (1) 'retour sur la première diapositive
End Sub

Le code d'envoi

Sub envoi()
Dim chemin As String, x As Integer, nb As Integer
Dim unfichier As String
Dim ol As Object, monItem As Object
Set ol = CreateObject("outlook.application")
Set monItem = ol.CreateItem(0)
chemin = ActivePresentation.Path & "\"
nb = ActivePresentation.Slides.Count
ActivePresentation.SaveCopyAs chemin & "\unfichier.pptx"
unfichier = chemin & "unfichier.pptx"
With monItem
'adresse mail du destinataire
     .To = "destinataire@adresse.fr" 'à personnaliser
    'sujet du mail
    .Subject = "envoi d'un fichier"
    'texte du corps du mail
    .body = "Bonjour" & Chr(13) & Chr(13) & "Je vous prie de bien vouloir trouver blabla" 'à personnaliser
    .Attachments.Add unfichier
    .Send
End With
Set ol = Nothing
'Presentations(diapo3).Close
MsgBox "l'envoi a bien été effectué."
Kill unfichier
Call effacer_contenu_formulaire
'Call ajouter_une_diapositive 'plus tard car il faut encore ajouter les boutons de navigation
End Sub

Pour effacer le contenu des diapositives

Sub effacer_contenu_formulaire()
For i = 1 To 3
 ActivePresentation.Slides(1).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(2).Shapes("TextBox1").OLEFormat.Object.Text = ""
For i = 1 To 2
 ActivePresentation.Slides(3).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(5).Shapes("ComboBox1").OLEFormat.Object.Text = ""
For i = 1 To 3
 ActivePresentation.Slides(6).Shapes("CheckBox" & i).OLEFormat.Object.Value = ""
Next
End Sub

 
Télécharger le fichier Questionnaire PowerPoint avec Firefox car Chrome peut parfois considèrer les macros comme virus