Powerpoint - Formulaire sur présentation interactive (résolu)
Bonjour,
je souhaite insérer un formulaire sur une présentation Powerpoint diffusé sur une borne interactive.
Etant plutôt novice je rencontre plusieurs problèmes.
Tout d'abord, je souhaiterai savoir comment et où sont enregistrés les avis saisies par les utilisateurs.
Ma présentation étant sur une borne en libre service, je souhaiterai qu'une fois le formulaire rempli sur une slide du diaporama, une mention indique que l'avis a été bien pris en compte et que le diaporama retourne à la page d'accueil et remette à zéro le formulaire afin que les utilisateurs suivant puissent également remplir le formulaire.
Merci d'avance, je reste à votre disposition pour tout renseignement complémentaire.
Cédric
je souhaite insérer un formulaire sur une présentation Powerpoint diffusé sur une borne interactive.
Etant plutôt novice je rencontre plusieurs problèmes.
Tout d'abord, je souhaiterai savoir comment et où sont enregistrés les avis saisies par les utilisateurs.
Ma présentation étant sur une borne en libre service, je souhaiterai qu'une fois le formulaire rempli sur une slide du diaporama, une mention indique que l'avis a été bien pris en compte et que le diaporama retourne à la page d'accueil et remette à zéro le formulaire afin que les utilisateurs suivant puissent également remplir le formulaire.
Merci d'avance, je reste à votre disposition pour tout renseignement complémentaire.
Cédric
Bipbipcoyote
4 354 contributions
4 354 contributions
Membre depuis le 06/03/2001
Envoyé le 07/10/2021 à 15:36 Modifié par Bipbipcoyote
Bonjour,
La solution sans doute
en cumul avec ce code
mais il faut gérer les événements et détecter le passage à la diapositive suivante pour lancer la macro envoi ou alors il faut mettre un bouton pour provoquer l'envoi
https://arkham46.developpez.com/articles/powerpoint/events/#LVIII
Je vais tenter de faire ce truc et je posterai le fichier sur ci-joint
La solution sans doute
en cumul avec ce code
mais il faut gérer les événements et détecter le passage à la diapositive suivante pour lancer la macro envoi ou alors il faut mettre un bouton pour provoquer l'envoi
https://arkham46.developpez.com/articles/powerpoint/events/#LVIII
Je vais tenter de faire ce truc et je posterai le fichier sur ci-joint
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bipbipcoyote
4 354 contributions
4 354 contributions
Membre depuis le 06/03/2001
Envoyé le 07/10/2021 à 18:17 Modifié par Bipbipcoyote
Bonjour,
En cumulant les liens ci-dessus, voici ma proposition
Pour voir le code faire ALT+F11
Télécharger le fichier
utiisez Firefox pour le télécharger parce que Chrome refuse de le faire, il considère les fichiers avec macro comme des virus
J'ai modifié le code de Marina pour envoyer le fichier complet (faire quand même attention à sa taille, compresser les images) , S'il est trop lourd, il faut reprendre le code de Marina qui efface les diapositives qui fournissent des infos générales et qui ne font pas partie du "formulaire"
L'envoi fonctionne avec Outlook pour bureau installé sur l'ordinateur et configuré avec l'adresse email inscrite dans le code, il faut personnaliser l'adresse qui recevra le courrier ainsi que le texte du corps du message
On ne sait pas quel est le logiciel de messagerie installé sur la borne. Il faudra découvrir sans doute une code spécifique si ce n'est pas Outlook pour bureau
Le code pour effacer le contenu des contrôles textbox combobox checkbox est personnalisé pour chaque diapositive, on pourrait pousser le bouchon à boucler sur chaque diapositive, à détecter le type de contrôle etc mais bon, en principe, il ne doit pas y avoir trop de questions par slide, ni trop de slides par présentation...
Il faut donc personnaliser ce code suivant ton diaporama, mais le code que j'ai mis est simple à comprendre
En cumulant les liens ci-dessus, voici ma proposition
Pour voir le code faire ALT+F11
Télécharger le fichier
utiisez Firefox pour le télécharger parce que Chrome refuse de le faire, il considère les fichiers avec macro comme des virus
J'ai modifié le code de Marina pour envoyer le fichier complet (faire quand même attention à sa taille, compresser les images) , S'il est trop lourd, il faut reprendre le code de Marina qui efface les diapositives qui fournissent des infos générales et qui ne font pas partie du "formulaire"
L'envoi fonctionne avec Outlook pour bureau installé sur l'ordinateur et configuré avec l'adresse email inscrite dans le code, il faut personnaliser l'adresse qui recevra le courrier ainsi que le texte du corps du message
On ne sait pas quel est le logiciel de messagerie installé sur la borne. Il faudra découvrir sans doute une code spécifique si ce n'est pas Outlook pour bureau
Le code pour effacer le contenu des contrôles textbox combobox checkbox est personnalisé pour chaque diapositive, on pourrait pousser le bouchon à boucler sur chaque diapositive, à détecter le type de contrôle etc mais bon, en principe, il ne doit pas y avoir trop de questions par slide, ni trop de slides par présentation...
Il faut donc personnaliser ce code suivant ton diaporama, mais le code que j'ai mis est simple à comprendre
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bonjour,
merci pour votre aide.
Je vais essayer tout ça tranquillement avant de revenir vers vous.
Merci encore et bon week-end.
Cédric
merci pour votre aide.
Je vais essayer tout ça tranquillement avant de revenir vers vous.
Merci encore et bon week-end.
Cédric
Bonjour,
tout d'abord, merci, tout fonctionne parfaitement.
Cependant, je souhaiterai récupérer les informations saisies dans le formulaire dans un fichier excel et non pas une copie de la diapositive.
Il n'y a pas beaucoup de données à récupérer, environ 4 à 6 questions.
Je reste disponible pour tout renseignement complémentaire.
Cédric
tout d'abord, merci, tout fonctionne parfaitement.
Cependant, je souhaiterai récupérer les informations saisies dans le formulaire dans un fichier excel et non pas une copie de la diapositive.
Il n'y a pas beaucoup de données à récupérer, environ 4 à 6 questions.
Je reste disponible pour tout renseignement complémentaire.
Cédric
Bonjour,
Tu peux voir ma solution sur mon site J'y ai mis les explications et les fichiers d'exemple en bas de page... Je n'ai pas fait toutes les données mais en cumulant ce que j'ai déjà expliqué et que j'ai repris sur ce lien
tu peux personnaliser le type de données à récupérer dans
ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text
regarde la procédure effacer_contenu_formulaire() où on parle des shapes Combobox, Checkbox etc...
Tu peux voir ma solution sur mon site J'y ai mis les explications et les fichiers d'exemple en bas de page... Je n'ai pas fait toutes les données mais en cumulant ce que j'ai déjà expliqué et que j'ai repris sur ce lien
tu peux personnaliser le type de données à récupérer dans
ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text
regarde la procédure effacer_contenu_formulaire() où on parle des shapes Combobox, Checkbox etc...
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bonjour,
je n'arrive pas à envoyer le fichier excel par mail, surement à cause de mon niveau en VB qui est proche du nul!
Merci d'avance pour ton aide.
Bonne journée et bon week-end
Cédric
je n'arrive pas à envoyer le fichier excel par mail, surement à cause de mon niveau en VB qui est proche du nul!
Merci d'avance pour ton aide.
Bonne journée et bon week-end
Cédric
Bipbipcoyote
4 354 contributions
4 354 contributions
Membre depuis le 06/03/2001
Envoyé le 22/10/2021 à 16:17 Modifié par Bipbipcoyote
Bonjour,
Tu dois personnaliser les lignes dans la procédure envoi en changeant le nom et l'extension du fichier
ActivePresentation.SaveCopyAs chemin & "\formulaire.xlsm"
unfichier = chemin & "formulaire.xlsm"
Mais je ne comprends pas pourquoi tu veux l'envoyer par email car ce fichier est censé recueillir les informations entrées par différents usagers/clients ou que sais-je ?
Ta borne : de quoi est-elle constituée ? n'es-tu pas dans un environnement windows pro ? car tu peux alors, utiliser le bureau à distance
Ou si la borne et ton pc font partie d'un même réseau, tu peux connecter le dossier en tant que Lecteur Comment faire en vidéo ! Si tu n'en as pas les droits , demande à ton administrateur
Je ne connais pas non plus ton organisation. es-tu en entreprise et donc dans un domaine ou dans groupe de travail Différences en vidéo
Les dossiers partagés tu connais dans un groupe de travail[-comment faire
ou plus facile, à tester (car je n'ai pas de borne et je ne peux donc pas tester mais je suppose que cela peut fonctionner
placer le diaporama et le fichier Excel dans le dossier OneDrive et sur la borne et sur ton ordinateur, tu installes l'application de synchronisation avec le même compte. il te suffit alors d'ouvrir le fichier, plus besoin d'email
Tu dois personnaliser les lignes dans la procédure envoi en changeant le nom et l'extension du fichier
ActivePresentation.SaveCopyAs chemin & "\formulaire.xlsm"
unfichier = chemin & "formulaire.xlsm"
Mais je ne comprends pas pourquoi tu veux l'envoyer par email car ce fichier est censé recueillir les informations entrées par différents usagers/clients ou que sais-je ?
Ta borne : de quoi est-elle constituée ? n'es-tu pas dans un environnement windows pro ? car tu peux alors, utiliser le bureau à distance
Ou si la borne et ton pc font partie d'un même réseau, tu peux connecter le dossier en tant que Lecteur Comment faire en vidéo ! Si tu n'en as pas les droits , demande à ton administrateur
Je ne connais pas non plus ton organisation. es-tu en entreprise et donc dans un domaine ou dans groupe de travail Différences en vidéo
Les dossiers partagés tu connais dans un groupe de travail[-comment faire
ou plus facile, à tester (car je n'ai pas de borne et je ne peux donc pas tester mais je suppose que cela peut fonctionner
placer le diaporama et le fichier Excel dans le dossier OneDrive et sur la borne et sur ton ordinateur, tu installes l'application de synchronisation avec le même compte. il te suffit alors d'ouvrir le fichier, plus besoin d'email
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bonjour,
tout d'abord, désolé pour le temps de réponse mais congés oblige!
Pour répondre à tes questions, je comprends totalement ta réflexion mais je souhaiterais quand même pouvoir envoyé par mail le fichier excel afin d'une part de simplifier la tache et d'autre part de pouvoir changer à ma guise les personnes qui recevront le fichier.
J'ai essayé de cumuler tes solutions mais je ne m'en sors pas.
En effet, j'arrive à envoyer un fichier xlsx par mail mais il ne veut pas s'ouvrir (format de fichier non valide). J'ai l'impression que je me suis emmêlé les pinceaux entre les différentes solutions que tu m'as apporté.
Comme je n'arrive pas à insérer en pièce jointe mon fichier PowerPoint, je te mets ci-dessous les différents codes liés à ma présentation en espérant que tu pourras trouver la solution.
1 - Code sur slide:
Private Sub ComboBox1_DropButtonClick()
If ComboBox1.ListCount = 0 Then
With ComboBox1
.AddItem "Enfants"
.AddItem "Ados"
.AddItem "Adultes"
End With
End If
End Sub
Private Sub CommandButton1_Click()
Call envoi
SlideShowWindows(1).View.GotoSlide (1)
End Sub
Private Sub cmd_CopierVersExcel_Click()
Call Ouvrir
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
2 - Code sur module1
Sub envoi()
Dim Chemin As String, x As Integer, nb As Integer
Dim diapo64 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 & "\Sauvegarde.xlsx"
diapo1 = Chemin & "Sauvegarde.xlsx"
Presentations.Open (diapo1)
For x = nb To 1 Step -1
If x <> 1 Then ActivePresentation.Slides(x).Delete
Next
Presentations(diapo1).Save
With monItem
.To = "adresse@mail.fr"
.Subject = "Boite à idées"
.body = "Bonjour" & Chr(13) & Chr(13) & "Un avis a été déposé sur votre borne"
.Attachments.Add diapo1
.Send
End With
Set ol = Nothing
Presentations(diapo1).Close
MsgBox "Merci pour votre participation"
Kill diapo1
Call effacer
End Sub
Sub effacer()
For i = 1 To 2
ActivePresentation.Slides(1).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text = ""
End Sub
3 - Code sur Module2
Sub envoi()
Dim Chemin As String, x As Integer, nb As Integer
Dim diapo64 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 & "\Sauvegarde.xlsx"
diapo1 = Chemin & "Sauvegarde.xlsx"
Presentations.Open (diapo1)
For x = nb To 1 Step -1
If x <> 1 Then ActivePresentation.Slides(x).Delete
Next
Presentations(diapo1).Save
With monItem
.To = "adresse@mail.fr"
.Subject = "Boite à idées"
.body = "Bonjour" & Chr(13) & Chr(13) & "Un avis a été déposé sur votre borne"
.Attachments.Add diapo1
.Send
End With
Set ol = Nothing
Presentations(diapo1).Close
MsgBox "Merci pour votre participation"
Kill diapo1
Call effacer
End Sub
Sub effacer()
For i = 1 To 2
ActivePresentation.Slides(1).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text = ""
End Sub
Merci encore pour ta précieuse aide.
Bonne journée
tout d'abord, désolé pour le temps de réponse mais congés oblige!
Pour répondre à tes questions, je comprends totalement ta réflexion mais je souhaiterais quand même pouvoir envoyé par mail le fichier excel afin d'une part de simplifier la tache et d'autre part de pouvoir changer à ma guise les personnes qui recevront le fichier.
J'ai essayé de cumuler tes solutions mais je ne m'en sors pas.
En effet, j'arrive à envoyer un fichier xlsx par mail mais il ne veut pas s'ouvrir (format de fichier non valide). J'ai l'impression que je me suis emmêlé les pinceaux entre les différentes solutions que tu m'as apporté.
Comme je n'arrive pas à insérer en pièce jointe mon fichier PowerPoint, je te mets ci-dessous les différents codes liés à ma présentation en espérant que tu pourras trouver la solution.
1 - Code sur slide:
Private Sub ComboBox1_DropButtonClick()
If ComboBox1.ListCount = 0 Then
With ComboBox1
.AddItem "Enfants"
.AddItem "Ados"
.AddItem "Adultes"
End With
End If
End Sub
Private Sub CommandButton1_Click()
Call envoi
SlideShowWindows(1).View.GotoSlide (1)
End Sub
Private Sub cmd_CopierVersExcel_Click()
Call Ouvrir
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
2 - Code sur module1
Sub envoi()
Dim Chemin As String, x As Integer, nb As Integer
Dim diapo64 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 & "\Sauvegarde.xlsx"
diapo1 = Chemin & "Sauvegarde.xlsx"
Presentations.Open (diapo1)
For x = nb To 1 Step -1
If x <> 1 Then ActivePresentation.Slides(x).Delete
Next
Presentations(diapo1).Save
With monItem
.To = "adresse@mail.fr"
.Subject = "Boite à idées"
.body = "Bonjour" & Chr(13) & Chr(13) & "Un avis a été déposé sur votre borne"
.Attachments.Add diapo1
.Send
End With
Set ol = Nothing
Presentations(diapo1).Close
MsgBox "Merci pour votre participation"
Kill diapo1
Call effacer
End Sub
Sub effacer()
For i = 1 To 2
ActivePresentation.Slides(1).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text = ""
End Sub
3 - Code sur Module2
Sub envoi()
Dim Chemin As String, x As Integer, nb As Integer
Dim diapo64 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 & "\Sauvegarde.xlsx"
diapo1 = Chemin & "Sauvegarde.xlsx"
Presentations.Open (diapo1)
For x = nb To 1 Step -1
If x <> 1 Then ActivePresentation.Slides(x).Delete
Next
Presentations(diapo1).Save
With monItem
.To = "adresse@mail.fr"
.Subject = "Boite à idées"
.body = "Bonjour" & Chr(13) & Chr(13) & "Un avis a été déposé sur votre borne"
.Attachments.Add diapo1
.Send
End With
Set ol = Nothing
Presentations(diapo1).Close
MsgBox "Merci pour votre participation"
Kill diapo1
Call effacer
End Sub
Sub effacer()
For i = 1 To 2
ActivePresentation.Slides(1).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text = ""
End Sub
Merci encore pour ta précieuse aide.
Bonne journée
Oups,
je viens de m'apercevoir que j'ai copié le mauvais code pour le module 2.
Tu trouveras donc ci-dessous le code de mon module 2.
Sub Ouvrir()
Dim xlApp As Object
Dim Chemin As String
Dim Document As Variant
Dim Compteur As Long
'on initialise le compteur = nombre de lignes remplies
Compteur = 0
'endroit où se trouve les fichiers
Chemin = ActivePresentation.Path
'on lance Excel
Set xlApp = CreateObject("excel.application")
'on masque l'application
xlApp.Visible = False
Document = Dir(Chemin & "\Sauvegarde.xlsx")
'on masque ce qui se passe dans excel
xlApp.EnableEvents = False
'on charge le classeur
xlApp.Workbooks.Open FileName:=Chemin & "\" & Document, UpdateLinks:=True, ReadOnly:=False
'on compte le nombre de lignes déjà remplies
Compteur = xlApp.ActiveSheet.UsedRange.Rows.Count
'on copie le contenu des textbox dans les cellules
xlApp.Range("A" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text
xlApp.Range("B" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox2").OLEFormat.Object.Text
xlApp.Range("C" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text
xlApp.EnableEvents = True
'on sauve le fichier excel
xlApp.Workbooks("Sauvegarde.xlsx").Save
'on quitte Excel
xlApp.Quit
'On revient dans la présentation
DoEvents
CommandBars.ExecuteMso ("SlideReset")
DoEvents
ActivePresentation.SlideShowWindow.Activate
'Effacement des données saisies précédemment sur la dia
For i = 1 To 2
ActivePresentation.Slides(1).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text = ""
Next
'On revient sur la première dia
SlideShowWindows(1).View.GotoSlide (1)
End Sub
Merci encore!!!
je viens de m'apercevoir que j'ai copié le mauvais code pour le module 2.
Tu trouveras donc ci-dessous le code de mon module 2.
Sub Ouvrir()
Dim xlApp As Object
Dim Chemin As String
Dim Document As Variant
Dim Compteur As Long
'on initialise le compteur = nombre de lignes remplies
Compteur = 0
'endroit où se trouve les fichiers
Chemin = ActivePresentation.Path
'on lance Excel
Set xlApp = CreateObject("excel.application")
'on masque l'application
xlApp.Visible = False
Document = Dir(Chemin & "\Sauvegarde.xlsx")
'on masque ce qui se passe dans excel
xlApp.EnableEvents = False
'on charge le classeur
xlApp.Workbooks.Open FileName:=Chemin & "\" & Document, UpdateLinks:=True, ReadOnly:=False
'on compte le nombre de lignes déjà remplies
Compteur = xlApp.ActiveSheet.UsedRange.Rows.Count
'on copie le contenu des textbox dans les cellules
xlApp.Range("A" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text
xlApp.Range("B" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox2").OLEFormat.Object.Text
xlApp.Range("C" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text
xlApp.EnableEvents = True
'on sauve le fichier excel
xlApp.Workbooks("Sauvegarde.xlsx").Save
'on quitte Excel
xlApp.Quit
'On revient dans la présentation
DoEvents
CommandBars.ExecuteMso ("SlideReset")
DoEvents
ActivePresentation.SlideShowWindow.Activate
'Effacement des données saisies précédemment sur la dia
For i = 1 To 2
ActivePresentation.Slides(1).Shapes("TextBox" & i).OLEFormat.Object.Text = ""
Next
ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text = ""
Next
'On revient sur la première dia
SlideShowWindows(1).View.GotoSlide (1)
End Sub
Merci encore!!!
Bonjour,
tu peux placer ton fichier powerpoint sur le site cjoint et tu colles l'url qu'il fournit ici sur mémoclic, je peux alors le récupérer...si tu veux en garder la confidentialité, tu peux le mettre dans un zip avec mot de passe que tu me communique en message privé, en cliquant sur mon pseudo sur cette réponse... En attendant, je vais tenter de recréer ton powerpoint en m'inspirant de ton code
tu peux placer ton fichier powerpoint sur le site cjoint et tu colles l'url qu'il fournit ici sur mémoclic, je peux alors le récupérer...si tu veux en garder la confidentialité, tu peux le mettre dans un zip avec mot de passe que tu me communique en message privé, en cliquant sur mon pseudo sur cette réponse... En attendant, je vais tenter de recréer ton powerpoint en m'inspirant de ton code
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bonjour,
merci pour ta réactivité.
Voici le lien:
https://www.cjoint.com/c/KKdoQCkRO0u
merci pour ta réactivité.
Voici le lien:
https://www.cjoint.com/c/KKdoQCkRO0u
Petite précision sur mon diapo, je ne t'ai envoyé que la slide où le questionnaire apparait car il est composé de 64 slides.
Je reste disponible pour tout renseignement complémentaire.
Merci encore.
Je reste disponible pour tout renseignement complémentaire.
Merci encore.
Bipbipcoyote
4 354 contributions
4 354 contributions
Membre depuis le 06/03/2001
Envoyé le 03/11/2021 à 16:32 Modifié par Bipbipcoyote
Bonjour,
Sans rien tester plus avant, je vois que sur cette diapo tu n'as qu'un seul bouton de commande qui se nomme CommandButton1 et je ne vois pas de bouton qui s'appelle cmd_CopierVersExcel donc, il y a une procédure qui n'est pas exécutée, tu dois grouper les 2 actions, comme ceci
Private Sub CommandButton1_Click()
Call Ouvrir
Call envoi
'SlideShowWindows(1).View.GotoSlide (1) 'ceci pas utile puisque tu le demandes déjà dans la procédure envoi
End Sub
et n'oublie pas que tu dois personnaliser adresse@mail.fr sinon, Outlook tente d'envoyer le fichier sur cette adresse mais tu vas recevoir un message d'erreur de postmaster car cette adresse n'existe pas, ce n'est qu'un exemple...
Le VBA s'exécute en mode séquentiel donc une ligne après l'autre, il faut suivre son cheminement et lorsque l'on subdivise les lignes de commandes, c'est pour y voir plus clair, lorsque l'on reprend son projet quelque temps plus tard où on a oublié comment on l'a pensé à l'époque, c'est pour cela qu'il faut aussi bien le commenter
Et voici comment débogger VBA sur le lien, c'est dans Excel mais c'est pareil pour les autres applications dont PowerPoint
Sans rien tester plus avant, je vois que sur cette diapo tu n'as qu'un seul bouton de commande qui se nomme CommandButton1 et je ne vois pas de bouton qui s'appelle cmd_CopierVersExcel donc, il y a une procédure qui n'est pas exécutée, tu dois grouper les 2 actions, comme ceci
Private Sub CommandButton1_Click()
Call Ouvrir
Call envoi
'SlideShowWindows(1).View.GotoSlide (1) 'ceci pas utile puisque tu le demandes déjà dans la procédure envoi
End Sub
et n'oublie pas que tu dois personnaliser adresse@mail.fr sinon, Outlook tente d'envoyer le fichier sur cette adresse mais tu vas recevoir un message d'erreur de postmaster car cette adresse n'existe pas, ce n'est qu'un exemple...
Le VBA s'exécute en mode séquentiel donc une ligne après l'autre, il faut suivre son cheminement et lorsque l'on subdivise les lignes de commandes, c'est pour y voir plus clair, lorsque l'on reprend son projet quelque temps plus tard où on a oublié comment on l'a pensé à l'époque, c'est pour cela qu'il faut aussi bien le commenter
Et voici comment débogger VBA sur le lien, c'est dans Excel mais c'est pareil pour les autres applications dont PowerPoint
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Re,
je viens de grouper les actions en suivant ta procédure, mais maintenant j'ai une erreur sur le module2 qui me dit "erreur de compilation - Next sans For" ???
je viens de grouper les actions en suivant ta procédure, mais maintenant j'ai une erreur sur le module2 qui me dit "erreur de compilation - Next sans For" ???
Bipbipcoyote
4 354 contributions
4 354 contributions
Membre depuis le 06/03/2001
Envoyé le 03/11/2021 à 18:19 Modifié par Bipbipcoyote
Bonjour,
revoici Ton fichier modifié
oui il y avait un Next en trop, mais pas seulement, car on avait aussi une instruction Kill or ici on ne doit pas effacer le fichier Excel et aussi un petit souci pour trouver le chemin du powerpoint et du fichier excel...
Donc n'oublie pas les conditions
- les fichiers powerpoint et excel sont dans le même dossier
- l'envoi se réalise via Outlook pour bureau
- personnalise le destinataire de l'email et son contenu (le texte)
Voilà je pense que ça fonctionneran en tout cas j'ai fait l'essai et plus de problème... sinon, reviens avec le souci
revoici Ton fichier modifié
oui il y avait un Next en trop, mais pas seulement, car on avait aussi une instruction Kill or ici on ne doit pas effacer le fichier Excel et aussi un petit souci pour trouver le chemin du powerpoint et du fichier excel...
Donc n'oublie pas les conditions
- les fichiers powerpoint et excel sont dans le même dossier
- l'envoi se réalise via Outlook pour bureau
- personnalise le destinataire de l'email et son contenu (le texte)
Voilà je pense que ça fonctionneran en tout cas j'ai fait l'essai et plus de problème... sinon, reviens avec le souci
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bonjour Bipbip,
l'envoi du fichier excel fonctionne, cependant, il ne récupère que les données inscrites dans les textbox mais pas les données de la liste déroulante.
Une autre question concernant les textbox, quand on écrit dedans, le texte saisie ne va pas à ligne et du coup si on écrit quelque chose de long on ne voit plus le début de la phrase. Y-a-t'il une solution pour que le texte saisie aille à la ligne automatiquement?
Je ne sais pas si mon explication est assez claire???
Merci encore pour ton aide.
Bonne journée
l'envoi du fichier excel fonctionne, cependant, il ne récupère que les données inscrites dans les textbox mais pas les données de la liste déroulante.
Une autre question concernant les textbox, quand on écrit dedans, le texte saisie ne va pas à ligne et du coup si on écrit quelque chose de long on ne voit plus le début de la phrase. Y-a-t'il une solution pour que le texte saisie aille à la ligne automatiquement?
Je ne sais pas si mon explication est assez claire???
Merci encore pour ton aide.
Bonne journée
Re,
une autre question, est-il possible lors de la récupération des données d'ajouter la date du jour automatiquement dans le fichier excel pour chaque formulaire rempli?
une autre question, est-il possible lors de la récupération des données d'ajouter la date du jour automatiquement dans le fichier excel pour chaque formulaire rempli?
Bipbipcoyote
4 354 contributions
4 354 contributions
Membre depuis le 06/03/2001
Envoyé le 04/11/2021 à 15:20 Modifié par Bipbipcoyote
Bonjour,
Argh ! la folie du copier-coller....
il faut modifier la procédure ouvrir comme ceci
'on copie le contenu des textbox dans les cellules
xlApp.Range("A" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text
xlApp.Range("B" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text
xlApp.Range("C" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox2").OLEFormat.Object.Text
xlApp.Range("D" & Compteur + 1) = Now() 'ceci inscrit date et heure
Et pour écrire sur plusieurs lignes avec retour automatique à la ligne, il faut simplement éditer les propriétés des textbox et de retrouver "multiline" et de passer de False à True
J'ai effacé le zip sur cjoint. voici la nouvelle version
Et j'ai aussi remarqué une nouvelle contrainte, il faut que le fichier Excel reste fermé lors de l'utilisation du PowerPoint sinon, il y a arrêt de la procédure d'envoi et Excel demande d'en faire une copie etc...
Argh ! la folie du copier-coller....
il faut modifier la procédure ouvrir comme ceci
'on copie le contenu des textbox dans les cellules
xlApp.Range("A" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Text
xlApp.Range("B" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox1").OLEFormat.Object.Text
xlApp.Range("C" & Compteur + 1) = ActivePresentation.Slides(1).Shapes("TextBox2").OLEFormat.Object.Text
xlApp.Range("D" & Compteur + 1) = Now() 'ceci inscrit date et heure
Et pour écrire sur plusieurs lignes avec retour automatique à la ligne, il faut simplement éditer les propriétés des textbox et de retrouver "multiline" et de passer de False à True
J'ai effacé le zip sur cjoint. voici la nouvelle version
Et j'ai aussi remarqué une nouvelle contrainte, il faut que le fichier Excel reste fermé lors de l'utilisation du PowerPoint sinon, il y a arrêt de la procédure d'envoi et Excel demande d'en faire une copie etc...
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bonjour Bipbip,
c'est parfait, tout fonctionne correctement.
Merci beaucoup pour ton aide.
Je vais continuer à bosser sur ma présentation et peut-être à bientôt si je suis coincé.
Bonne journée
c'est parfait, tout fonctionne correctement.
Merci beaucoup pour ton aide.
Je vais continuer à bosser sur ma présentation et peut-être à bientôt si je suis coincé.
Bonne journée
Bonjour Bipbip,
et oui, c'est encore moi
J'ai un autre petit souci, j'ai un bug quand je clique sur enregistrer et envoyer
pour envoyer mon formulaire.
Quand je visualise mon powerpoint (pptm) cela fonctionne correctement et envoi le fichier excel. Par contre, quand j'enregistre mon diaporama (ppsm) afin d'avoir directement la présentation, j'ai cette erreur:
"la méthode 'ExecuteMso' de l'objet '_CommandBars' a échoué"
Quand j'active le débogeur il me surligne cette ligne de commande:
"CommandBars.ExecuteMso ("SlideReset")"
Je te remercie par avance de ton aide.
Bonne fin de journée
et oui, c'est encore moi
J'ai un autre petit souci, j'ai un bug quand je clique sur enregistrer et envoyer
pour envoyer mon formulaire.
Quand je visualise mon powerpoint (pptm) cela fonctionne correctement et envoi le fichier excel. Par contre, quand j'enregistre mon diaporama (ppsm) afin d'avoir directement la présentation, j'ai cette erreur:
"la méthode 'ExecuteMso' de l'objet '_CommandBars' a échoué"
Quand j'active le débogeur il me surligne cette ligne de commande:
"CommandBars.ExecuteMso ("SlideReset")"
Je te remercie par avance de ton aide.
Bonne fin de journée
Bipbipcoyote
4 354 contributions
4 354 contributions
Membre depuis le 06/03/2001
Envoyé le 10/11/2021 à 23:42 Modifié par Bipbipcoyote
Bonjour,
c'est l'extension qui provoque cela, pourquoi ne pas rester en pptm
maintenant, tu peux mettre cette ligne en remarque (il faut simplement placer une apostrophe devant la ligne, elle prend une couleur verte et n'est pas exécutée) et tester. Je l'ai fait et cela fonctionne apparemment .
c'est l'extension qui provoque cela, pourquoi ne pas rester en pptm
maintenant, tu peux mettre cette ligne en remarque (il faut simplement placer une apostrophe devant la ligne, elle prend une couleur verte et n'est pas exécutée) et tester. Je l'ai fait et cela fonctionne apparemment .
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Discussion trop ancienne
Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.
Nous vous suggérons de créer un nouveau message
22 enregistrements - Page 1/1
« Retour sur la liste des messages de ce forum