Ajout d'une entrée de texte dans un MSGBOX qui sera inclu dans un mail

Bonjour,

Ce post fait suite direct à l'un de mes posts précédents dont le but était d'envoyer automatiquement un mail en allant chercher des infos dans quelques cellules, je remercie encore tout le monde sur ce forum pour leur aide, je suis un grand débutant en VBA qui se contente de chercher des codes VBA et de les adapter comme je peux.

Aujourd'hui, je ne trouve pas de code à adapter pour faire ce que j'aimerais :

J'aimerais enrichir ce code VBA en ajoutant dans le MSGBOX un espace de saisie de texte qui sera par la suite inclu au mail envoyé. Voici le code actuel :

Sub Bouton_PC()
If MsgBox("Vérifiez de bien avoir renseigné :" & Chr(10) & "" & Chr(10) & "- Les deux numéros AGRO" & Chr(10) & "- La ligne de production/conditionnement" & Chr(10) & "" & Chr(10) & "Envoyer la demande ?", 36, "Confirmation") = vbYes Then
Set MyApp = CreateObject("Outlook.Application") 'Outlook doit être ouvert
Set MyItem = MyApp.CreateItem(0)
With MyItem
    .To = "jeanmichmich@truc.com"
    .CC = "Johndoeuf@truc.com"
    .Subject = "Demande de référence couleur"
    .ReadReceiptRequested = False 'accusé de réception ?
sbody = "<html><body>Bonjour,<br><br>Merci de préparer la référence du " & Range("D4") & " (" & Range("D6") & ") vers le " & [J4] & " (" & [J6] & ") à " & [L30] & " ppm pour la ligne " & [E19] & ".<br><br>Bonne journée !</body></html>"

.htmlbody = sbody
End With
MyItem.Send 'Boite de dialogue de confirmation de l'envoi du mail
MsgBox "Demande envoyée." & Chr(10) & "" & Chr(10) & "Merci et bonne journée !"
End If
End Sub

J'ai cru comprendre en fouillant sur le net qu'il faudrait utiliser une fonction "inputbox"... mais je suis un peu perdu, comment lui attribuer un nom pour appeler son contenu par la suite dans le mail à envoyer ?

Ma demande est surement un peu maladroite, si je ne suis pas assez clair ou s'il manque des infos, n'hésitez pas à me demander.

edit :

J'ai trouvé ce code sur le net que j'ai adapté un peu pour mon document, je pense pouvoir le joindre à mon premier code ci-dessus. Il me reste à faire appel à la cellule A1 selon le code ci-dessous :

Sub Commentaire()

Dim Commentaire As String

With Sheets("Feuil1") 'feuil1

          Commentaire = "Informations complémentaires :"
          B = InputBox(Commentaire, vbQuestion, "Informations supplémentaires")

          If B = vbCancel Then
                MsgBox "Test", vbInformation
          Close B

          Else
                Range("A1") = B

          End If

End With

End Sub

Encore un petit problème : le titre de la fenêtre inputbox qui s'ouvre quand je lance la macro est "32". Comment puis-je modifier le titre de la fenêtre ?

Bonjour, j'ai du nouveau concernant mon code :

- J'arrive désormais à introduire le texte entré via inputbox dans le mail qui est envoyé (l'inputbox est entrée dans une cellule puis je fais appel à cette cellule dans le mail).

- J'ai trouvé comment renommé le titre de mon inputbox

Je rencontre un dernier problème : j'ai deux choix dans mon inputbox : "OK" : le mail est envoyé + mesage de confirmation, "CANCEL" pas de mail envoyé + message d'annulation. Mon problème est que je fasse OK ou CANCEL, un mail est envoyé + confirmation dans les deux cas...

Sub Commentaire()

Dim Commentaire As String

With Sheets("Feuil1") 'feuil1

          Commentaire = "Vérifiez de bien avoir renseigné :" & Chr(10) & "" & Chr(10) & "- Le numéro AGRO" & Chr(10) & "- La date" & Chr(10) & "- Un commentaire dans le champ ci-dessous"
          B = InputBox(Commentaire, "Comfirmation d'envoi", "")

          If B = vbCancel Then
          Close B
          MsgBox "Demande annulée."
          Exit Sub

          Else
                Range("A1") = B
                Set MyApp = CreateObject("Outlook.Application") 'Outlook doit être ouvert
Set MyItem = MyApp.CreateItem(0)
With MyItem
    .To = "antoine.dubrac@syngenta.com"
    .CC = ""
    .Subject = "Notification de lot(s) renommé(s)"
    .ReadReceiptRequested = False 'accusé de réception ?
sbody = "<html><body>Bonjour,<br><br>Merci de préparer la référence du " & Range("D4") & " (" & Range("D6") & ") vers le " & [J4] & " (" & [J6] & ") à " & [L30] & " ppm pour la ligne " & [E19] & ".<br><br>Commentaire lié à la notification :<br><br>" & [A1] & "<br><br>Bonne journée !</body></html>"

'plus bas
.htmlbody = sbody
End With
MyItem.Send 'Boite de dialogue de confirmation de l'envoi du mail
MsgBox "Demande envoyée." & Chr(10) & "" & Chr(10) & "Merci et bonne journée !"

          End If

End With

End Sub

Bonjour Lockard

Il existe des outils dans VBA project pour savoir ce qui se passe

F9 (point d'arrêt) sur la ligne : B= Inputbox...

Et vous pourriez voir alors que B est vide et non vbCancel

A+

Et vous pourriez voir alors que B est vide et non vbCancel

J'ai essayé ce fameux "point d'arrêt", la ligne en question est alors surlignée en rouge mais je ne vois pas où cela me mène... Je suis un grand débutant du VBA encore.

J'ai finalement réussi à faire ce que je voulais, je laisse le code ici, qui sait cela pourrait être utile à quelqu'un !

Sub Commentaire()

With Sheets("Feuil1")

Dim Commentaire As Variant
Reponse = Application.InputBox("Vérifiez de bien avoir renseigné :" & Chr(10) & "" & Chr(10) & "- Le numéro AGRO" & Chr(10) & "- La date" & Chr(10) & "- Un commentaire dans le champ ci-dessous", Type:=2)

If VarType(Reponse) = vbBoolean Then
    MsgBox "Demande annulée"
    Else
Range("A1") = Reponse
                Set MyApp = CreateObject("Outlook.Application") 'Outlook doit être ouvert
Set MyItem = MyApp.CreateItem(0)
With MyItem
    .To = "antoine.dubrac@syngenta.com"
    .CC = ""
    .Subject = "Notification de lot(s) renommé(s)"
    .ReadReceiptRequested = False 
sbody = "<html><body>Bonjour,<br><br>Merci de préparer la référence du " & Range("D4") & " (" & Range("D6") & ") vers le " & [J4] & " (" & [J6] & ") à " & [L30] & " ppm pour la ligne " & [E19] & ".<br><br>Commentaire lié à la notification :<br>" & [A1] & "<br><br>Bonne journée !</body></html>"

.htmlbody = sbody
End With
MyItem.Send 
MsgBox "Demande envoyée." & Chr(10) & "" & Chr(10) & "Merci et bonne journée !"
End If

End With

End Sub

Re,

Une fois le point d'arrêt mis, il faut bien entendu lancer la macro

Le code s'arrête alors ou se trouve la ligne rouge, F8 pour la passer, vous mettez votre curseur de souris dessus et cela vous affiche la valeur

Si vous avez trouvez la solution, c'est parfait

Rechercher des sujets similaires à "ajout entree texte msgbox qui sera inclu mail"